guarded_move fixed