CSHARP-1013: Remove factories and listeners and pass them in as constructor arguments instead. Add more factories.