intial draft of function support