implemented function/sub types