infinite mirror recursion