Created new BaseSelector and moved SimpleSelector into a sealed subclass.