enable function recursion