Completed Selectors class, initial draft untested