Allow users define custom functions