Split discoverer into its own class.