add function support