add a way to recursion
add a function recursion