combine delegate and delegateFunctions so that delegate does both