Hide recursion from public api