changes to address recursive invocation exception