diff --git a/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/Controller.java b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/Controller.java
index e2cb693..d45bb07 100644
--- a/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/Controller.java
+++ b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/Controller.java
@@ -61,9 +61,6 @@
     // It's only used by handleControllerNodeIPsChanged
     protected HashMap<String, String> controllerNodeIPsCache;
 
-
-    private IOFSwitchManager switchManager;
-
     private ChannelGroup cg;
 
     // Configuration options
diff --git a/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/IOFSwitchManager.java b/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/IOFSwitchManager.java
deleted file mode 100644
index ec12ad5..0000000
--- a/of/ctl/src/main/java/org/onlab/onos/of/controller/impl/IOFSwitchManager.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.onlab.onos.of.controller.impl;
-
-import org.onlab.onos.of.controller.driver.AbstractOpenFlowSwitch;
-import org.projectfloodlight.openflow.protocol.OFVersion;
-
-
-/**
- * Interface to passed to controller class in order to allow
- * it to spawn the appropriate type of switch and furthermore
- * specify a registry object (ie. ZooKeeper).
- *
- */
-public interface IOFSwitchManager {
-
-    /**
-     * Given a description string for a switch spawn the
-     * concrete representation of that switch.
-     *
-     * @param mfr manufacturer description
-     * @param hwDesc hardware description
-     * @param swDesc software description
-     * @param ofv openflow version
-     * @return A switch of type IOFSwitch.
-     */
-    public AbstractOpenFlowSwitch getSwitchImpl(String mfr, String hwDesc, String swDesc, OFVersion ofv);
-
-}
