rewriting to separate game state and views
added Views