Minor selection group changes

Adds ability to set default selection group value in the constructor, and some small refactoring to allow easier template overriding for subclasses.