diff --git a/jdcp-core/src/main/java/ca/eandb/jdcp/job/ParallelizableJobRunner.java b/jdcp-core/src/main/java/ca/eandb/jdcp/job/ParallelizableJobRunner.java
index <HASH>..<HASH> 100644
--- a/jdcp-core/src/main/java/ca/eandb/jdcp/job/ParallelizableJobRunner.java
+++ b/jdcp-core/src/main/java/ca/eandb/jdcp/job/ParallelizableJobRunner.java
@@ -52,6 +52,11 @@ import ca.eandb.util.progress.ProgressMonitorFactory;
  */
 public final class ParallelizableJobRunner implements Runnable {
 
+  /** Creates a new Builder for initializing a ParallelizableJobRunner. */
+  public static Builder newBuilder() {
+    return new Builder();
+  }
+
   /** A Builder for creating ParallelizableJobRunner instances. */
   public static class Builder {
     private ParallelizableJob job = null;
@@ -65,6 +70,12 @@ public final class ParallelizableJobRunner implements Runnable {
         = DummyProgressMonitor.getInstance();
 
     /**
+     * Must be created using static factory method.
+     * @see ParallelizableJobRunner#newBuilder()
+     */
+    private Builder() {}
+
+    /**
      * Creates the configured ParallelizableJobRunner instance.
      * @throws IllegalStateException If the job has not been set.
      * @see #setJob(ParallelizableJob)
Add factory method for creating ParallelizableJobRunner.Builder instances.