better abstraction of Locations
added clear() to SelectionManager