add some function support