refactor MoveStates
in progress