fixed adding to many listeners issue