implement complete game workflow using states, #3
update doc