Split discoverer into its own library.