can only swap with neighbours