diff --git a/src/main/java/net/floodlightcontroller/mastership/IMastershipService.java b/src/main/java/net/floodlightcontroller/mastership/IMastershipService.java
index bfb2e9a..cc0ddf4 100644
--- a/src/main/java/net/floodlightcontroller/mastership/IMastershipService.java
+++ b/src/main/java/net/floodlightcontroller/mastership/IMastershipService.java
@@ -32,16 +32,16 @@
 	 * @param controller A string identifying the controller and (possibly) how to talk to it.
 	 * (We will have to develop a convention for this - most likely hostname:port)
 	 */
-	public void registerController(String controllerId) throws RegistryException;
+	public void registerController(String controllerId) throws Exception;
 	
 	/**
 	 * Get all controllers in the cluster
 	 * @return
 	 */
-	public Collection<String> getAllControllers() throws RegistryException;
+	public Collection<String> getAllControllers() throws Exception;
 	
 	
-	public String getControllerForSwitch(long dpid) throws RegistryException;
+	public String getControllerForSwitch(long dpid) throws Exception;
 	
 	public Collection<Long> getSwitchesControlledByController(String controllerId);
 }
diff --git a/src/main/java/net/floodlightcontroller/mastership/MastershipManager.java b/src/main/java/net/floodlightcontroller/mastership/MastershipManager.java
index 5f8a156..bff588b 100644
--- a/src/main/java/net/floodlightcontroller/mastership/MastershipManager.java
+++ b/src/main/java/net/floodlightcontroller/mastership/MastershipManager.java
@@ -189,7 +189,7 @@
 	}
 	
 	@Override
-	public Collection<String> getAllControllers() throws RegistryException {
+	public Collection<String> getAllControllers() throws Exception {
 		log.debug("Getting all controllers");
 		
 		List<String> controllers = new ArrayList<String>();
@@ -199,7 +199,7 @@
 			try {
 				d = new String(data.getData(), "UTF-8");
 			} catch (UnsupportedEncodingException e) {
-				throw new RegistryException("Error encoding string", e);
+				throw new Exception("Error encoding string", e);
 			}
 
 			controllers.add(d);
@@ -208,12 +208,12 @@
 	}
 
 	@Override
-	public void registerController(String id) throws RegistryException {
+	public void registerController(String id) throws Exception {
 		byte bytes[] = null;
 		try {
 			bytes = id.getBytes("UTF-8");
 		} catch (UnsupportedEncodingException e1) {
-			throw new RegistryException("Error encoding string", e1);
+			throw new Exception("Error encoding string", e1);
 		}
 		
 		String path = controllerPath + "/" + id;
@@ -225,12 +225,12 @@
 			client.create().withProtection().withMode(CreateMode.EPHEMERAL)
 					.forPath(path, bytes);
 		} catch (Exception e) {
-			throw new RegistryException("Error contacting the Zookeeper service", e);
+			throw new Exception("Error contacting the Zookeeper service", e);
 		}
 	}
 	
 	@Override
-	public String getControllerForSwitch(long dpid) throws RegistryException {
+	public String getControllerForSwitch(long dpid) throws Exception {
 		// TODO Work out how we should store this controller/switch data.
 		// The leader latch might be a index to the /controllers collections
 		// which holds more info on the controller (how to talk to it for example).
@@ -248,7 +248,7 @@
 		try {
 			leader = latch.getLeader();
 		} catch (Exception e) {
-			throw new RegistryException("Error contacting the Zookeeper service", e);
+			throw new Exception("Error contacting the Zookeeper service", e);
 		}
 		
 		return leader.getId();
diff --git a/src/main/java/net/floodlightcontroller/mastership/RegistryException.java b/src/main/java/net/floodlightcontroller/mastership/RegistryException.java
index ebf564a..134117c 100644
--- a/src/main/java/net/floodlightcontroller/mastership/RegistryException.java
+++ b/src/main/java/net/floodlightcontroller/mastership/RegistryException.java
@@ -4,6 +4,7 @@
 
 	private static final long serialVersionUID = -8276300722010217913L;
 
+	/*
 	public RegistryException() {
 		// TODO Auto-generated constructor stub
 	}
@@ -28,5 +29,6 @@
 		super(message, cause, enableSuppression, writableStackTrace);
 		// TODO Auto-generated constructor stub
 	}
+	*/
 
 }
