Extend SelectionSystem interface
Move some algorithms around.
Convert walker classes to lambda expressions