new structure
rewrite of game engine