move logic