learning about data structures and recursion