split tests into smaller components
simplify api (s/update_state/move/)
explicit var declarations