Using a real implemenation of bonjour
code cleanup
don't ask users to pass in a private type
experimental build