diff --git a/utils/misc/src/main/java/org/onlab/util/PredictableExecutor.java b/utils/misc/src/main/java/org/onlab/util/PredictableExecutor.java
index 2be1ee2..279091c 100644
--- a/utils/misc/src/main/java/org/onlab/util/PredictableExecutor.java
+++ b/utils/misc/src/main/java/org/onlab/util/PredictableExecutor.java
@@ -15,6 +15,8 @@
  */
 package org.onlab.util;
 
+import com.google.common.util.concurrent.MoreExecutors;
+
 import static com.google.common.base.Preconditions.checkArgument;
 import static com.google.common.base.Preconditions.checkNotNull;
 
@@ -67,6 +69,18 @@
      * @param threadFactory {@link ThreadFactory} to use to create threads
      */
     public PredictableExecutor(int buckets, ThreadFactory threadFactory) {
+        this(buckets, threadFactory, false);
+    }
+
+    /**
+     * Creates {@link PredictableExecutor} instance.
+     * Meant for testing purposes.
+     *
+     * @param buckets number of buckets or 0 to match available processors
+     * @param threadFactory {@link ThreadFactory} to use to create threads
+     * @param directExec direct executors
+     */
+    public PredictableExecutor(int buckets, ThreadFactory threadFactory, boolean directExec) {
         checkArgument(buckets >= 0, "number of buckets must be non zero");
         checkNotNull(threadFactory);
         if (buckets == 0) {
@@ -75,7 +89,7 @@
         this.backends = new ArrayList<>(buckets);
 
         for (int i = 0; i < buckets; ++i) {
-            this.backends.add(backendExecutorService(threadFactory));
+            this.backends.add(backendExecutorService(threadFactory, directExec));
         }
     }
 
@@ -93,10 +107,11 @@
      * Creates a single thread {@link ExecutorService} to use in the backend.
      *
      * @param threadFactory {@link ThreadFactory} to use to create threads
-     * @return single thread {@link ExecutorService}
+     * @param direct direct executors
+     * @return single thread {@link ExecutorService} or direct executor
      */
-    protected ExecutorService backendExecutorService(ThreadFactory threadFactory) {
-        return Executors.newSingleThreadExecutor(threadFactory);
+    protected ExecutorService backendExecutorService(ThreadFactory threadFactory, boolean direct) {
+        return direct ? MoreExecutors.newDirectExecutorService() : Executors.newSingleThreadExecutor(threadFactory);
     }
 
 
