introduce EitherTWriterT
improve description of UpMoveState
introduce Test