more clear move logic