refactoring game flow (try to move->check->assess->save)