first steps to separate game logic from library