insert listener shouldn't intercept recursion->generate process