major redesign of the engine. Careful when updating

Redesigned game engine hierarchies and object types to make it flexible
and readable