Introduce an "Engine" class to abstract some of the details of loading modules, registering events, etc.