actual recursion in pre_query