support regular functions