fix(listener): add savedListener param to represent non-internal listener

Previously, the code to set an internal listener to a NOOP
in order to not console log on manipulation in the service
itself was failing to overwrite the normal listener. With a
NOOP that overwrites the normal listener, a savedListener is
needed to keep the external listener.