fix smart_move behavior