consolidate function types