change to abstract Game and add human input reading