parse board safely
added undo and score
introducing GameState