listen-unlisten refactor