support custom functions
0.2.2