added function type implementation
replacing legacy type structure with new implementation