merged add_listeners into add_listener