implemented function selector