recursive static