protected void AddEngine(Engine engine)
{
if (engine == null)
throw new ArgumentNullException("engine");
if (engine.Plugin != this)
throw new ArgumentException(engine.Name + " is not part of this " + Name + ".");
if (EnginesMutable.Contains(engine))
throw new ArgumentException(engine.Name + " is already added to this " + Name + ".");
EnginesMutable.Add(engine);
}