more recursive magic