fix: patching/unpatching should not trigger listeners