I think the touch specific functions should move into their own handler. Perhaps TouchSelectionManager? There isn't much overlap with other functions in this class I think