Refactor listen! / unlisten!