drop StreamWriterBuilderFactory, for now
diff --git a/src/jsontestrunner/main.cpp b/src/jsontestrunner/main.cpp
index 61411b4..28894ce 100644
--- a/src/jsontestrunner/main.cpp
+++ b/src/jsontestrunner/main.cpp
@@ -184,8 +184,7 @@
 static std::string useBuiltStyledStreamWriter(
     Json::Value const& root)
 {
-  Json::StreamWriterBuilderFactory f;
-  Json::StreamWriter::Builder builder(&f);
+  Json::StreamWriter::Builder builder;
   builder.setCommentStyle(Json::StreamWriter::CommentStyle::All);
   return writeString(root, builder);
 }
diff --git a/src/lib_json/json_writer.cpp b/src/lib_json/json_writer.cpp
index b6127d3..a3fa50d 100644
--- a/src/lib_json/json_writer.cpp
+++ b/src/lib_json/json_writer.cpp
@@ -967,6 +967,13 @@
 {
   return new BuiltStyledStreamWriter(stream, indentation_, cs_);
 }
+
+// This might become public someday.
+class StreamWriterBuilderFactory {
+public:
+  virtual ~StreamWriterBuilderFactory();
+  virtual StreamWriterBuilder* newStreamWriterBuilder() const;
+};
 StreamWriterBuilderFactory::~StreamWriterBuilderFactory()
 {
 }
@@ -975,14 +982,19 @@
   return new StreamWriterBuilder;
 }
 
-StreamWriter::Builder::Builder(StreamWriterBuilderFactory const* f)
-    : own_(f->newStreamWriterBuilder())
+StreamWriter::Builder::Builder()
+    : own_(StreamWriterBuilderFactory().newStreamWriterBuilder())
 {
 }
 StreamWriter::Builder::~Builder()
 {
   delete own_;
 }
+StreamWriter::Builder::Builder(Builder const&)
+  : own_(nullptr)
+{abort();}
+void StreamWriter::Builder::operator=(Builder const&)
+{abort();}
 void StreamWriter::Builder::setCommentStyle(CommentStyle v)
 {
   own_->setCommentStyle(v);
@@ -1006,8 +1018,7 @@
 }
 
 std::ostream& operator<<(std::ostream& sout, Value const& root) {
-  StreamWriterBuilderFactory f;
-  StreamWriter::Builder builder(&f);
+  StreamWriter::Builder builder;
   builder.setCommentStyle(StreamWriter::CommentStyle::All);
   std::shared_ptr<StreamWriter> writer(builder.newStreamWriter(&sout));
   writer->write(root);