Consolidate duplicated code in add_listener(), and make sure