Add `listen` callback