A natural step forward would be to design a Protocols.DNS_SD.Browser class next. This can be a bit trickier depending on what type of API the high-level code should have (e.g. async callbacks or just a snapshot of the currently available services).
Are you forced to pick a favourite there? Both ways sound useful, for different problem domains.