add files
explain the performance of recursion