one move logic