mover, selector, suppressor, some refactoring