diff --git a/src/main/images/Floodlight Icons.sketch/Data b/src/main/images/Floodlight Icons.sketch/Data
deleted file mode 100644
index 0fbceab..0000000
--- a/src/main/images/Floodlight Icons.sketch/Data
+++ /dev/null
Binary files differ
diff --git a/src/main/images/Floodlight Icons.sketch/QuickLook/Preview.png b/src/main/images/Floodlight Icons.sketch/QuickLook/Preview.png
deleted file mode 100644
index 4a36e7c..0000000
--- a/src/main/images/Floodlight Icons.sketch/QuickLook/Preview.png
+++ /dev/null
Binary files differ
diff --git a/src/main/images/Floodlight Icons.sketch/QuickLook/Thumbnail.png b/src/main/images/Floodlight Icons.sketch/QuickLook/Thumbnail.png
deleted file mode 100644
index 50ebe22..0000000
--- a/src/main/images/Floodlight Icons.sketch/QuickLook/Thumbnail.png
+++ /dev/null
Binary files differ
diff --git a/src/main/images/README b/src/main/images/README
deleted file mode 100644
index 46da010..0000000
--- a/src/main/images/README
+++ /dev/null
@@ -1 +0,0 @@
-These icons were created with Sketch, available at http://www.bohemiancoding.com/sketch/
diff --git a/src/main/java/net/floodlightcontroller/core/module/FloodlightModuleLoader.java b/src/main/java/net/floodlightcontroller/core/module/FloodlightModuleLoader.java
index 7507fd5..5ae7914 100644
--- a/src/main/java/net/floodlightcontroller/core/module/FloodlightModuleLoader.java
+++ b/src/main/java/net/floodlightcontroller/core/module/FloodlightModuleLoader.java
@@ -2,8 +2,6 @@
 
 import java.io.File;
 import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
@@ -44,9 +42,7 @@
     protected static Object lock = new Object();
     
     protected FloodlightModuleContext floodlightModuleContext;
-	
-    public static final String COMPILED_CONF_FILE = 
-            "floodlightdefault.properties";
+
     public static final String FLOODLIGHT_MODULES_KEY =
             "floodlight.modules";
     
@@ -175,15 +171,8 @@
                 System.exit(1);
             }
         } else {
-            logger.info("Loading default modules");
-            InputStream is = this.getClass().getClassLoader().
-                                    getResourceAsStream(COMPILED_CONF_FILE);
-            try {
-                prop.load(is);
-            } catch (IOException e) {
-                logger.error("Could not load default modules", e);
-                System.exit(1);
-            }
+            logger.error("No configuration file specified");
+            System.exit(1);
         }
         
         String moduleList = prop.getProperty(FLOODLIGHT_MODULES_KEY)
diff --git a/src/main/resources/floodlightdefault.properties b/src/main/resources/floodlightdefault.properties
deleted file mode 100644
index a8fbd05..0000000
--- a/src/main/resources/floodlightdefault.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-floodlight.modules = net.floodlightcontroller.storage.memory.MemoryStorageSource,\
-net.floodlightcontroller.core.FloodlightProvider,\
-net.floodlightcontroller.threadpool.ThreadPool,\
-net.floodlightcontroller.devicemanager.internal.DeviceManagerImpl,\
-net.floodlightcontroller.counter.CounterStore,\
-net.floodlightcontroller.perfmon.PktInProcessingTime,\
-net.floodlightcontroller.ui.web.StaticWebRoutable,\
-net.onrc.onos.registry.controller.ZookeeperRegistry
-net.floodlightcontroller.restserver.RestApiServer.port = 8080
-net.floodlightcontroller.core.FloodlightProvider.openflowport = 6633
-net.floodlightcontroller.forwarding.Forwarding.idletimeout = 5
-net.floodlightcontroller.forwarding.Forwarding.hardtimeout = 0
diff --git a/src/main/resources/quantum.properties b/src/main/resources/quantum.properties
deleted file mode 100644
index 89c7543..0000000
--- a/src/main/resources/quantum.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-# The default configuration for openstack
-floodlight.modules = net.floodlightcontroller.storage.memory.MemoryStorageSource,\
-net.floodlightcontroller.core.FloodlightProvider,\
-net.floodlightcontroller.devicemanager.internal.DeviceManagerImpl,\
-net.floodlightcontroller.staticflowentry.StaticFlowEntryPusher,\
-net.floodlightcontroller.forwarding.Forwarding,\
-net.floodlightcontroller.jython.JythonDebugInterface,\
-net.floodlightcontroller.counter.CounterStore,\
-net.floodlightcontroller.perfmon.PktInProcessingTime,\
-net.floodlightcontroller.ui.web.StaticWebRoutable,\
-net.floodlightcontroller.virtualnetwork.VirtualNetworkFilter,\
-net.floodlightcontroller.threadpool.ThreadPool
-net.floodlightcontroller.restserver.RestApiServer.port = 8080
-net.floodlightcontroller.core.FloodlightProvider.openflowport = 6633
-net.floodlightcontroller.jython.JythonDebugInterface.port = 6655
\ No newline at end of file
