fix: contract lift_move