made the engine a module