Do we really want to do this recursively?