recursion new knowledge