change :state to :states for better clarity
add play-game; improve unit tests