writing base classes, entity manager, world, component