introduce UpMoveState
introduce EitherTWriterT
improve description of UpMoveState
introduce Test
introduce sbt setting run-tests
create ScriptTest
prepare for using DownMoveState
improve down-move error handling