Build out some more recursive functions