Recursive. Not ideal