design: added selector interface