working on recurse.