Split engine and game logic