Swap is much more flexible and can even be used with std algorithms. The notifier will lose some arguments but they are not used much anyway. Slide can be implemented by rotate. So not much code needs a change. We can implement a SwapTransation to fire the notifier only for all swaps.