more work. currently broken
completed recursion work