temporarily removed the actual recursion, will put it back soon