Compiles but will likely not work correctly. Refactoring event logic to EngineBase and making the event args more generic so pocos can be share.