rename listeners to observers