I can't believe this is recursive, but it works again