subscribe shouldn't have been publicly accessible