diff --git a/org.eclipse.gemini.mgmt/src/org/eclipse/gemini/mgmt/Activator.java b/org.eclipse.gemini.mgmt/src/org/eclipse/gemini/mgmt/Activator.java
index f4d7442..c30c35c 100644
--- a/org.eclipse.gemini.mgmt/src/org/eclipse/gemini/mgmt/Activator.java
+++ b/org.eclipse.gemini.mgmt/src/org/eclipse/gemini/mgmt/Activator.java
@@ -69,10 +69,34 @@
 
 	private static final String VIRGO_BUNDLE_ID = "org.eclipse.virgo.management.bundle";
 	
-	private List<MBeanServer> mbeanServers = new CopyOnWriteArrayList<MBeanServer>();
+	private final List<MBeanServer> mbeanServers = new CopyOnWriteArrayList<MBeanServer>();
+	
+	private final AtomicBoolean servicesRegistered = new AtomicBoolean(false);
+	
+	private final ObjectName frameworkName;
+	
+	private final ObjectName bundleStateName;
+	
+	private final ObjectName bundleWiringStateName;
+	
+	private final ObjectName packageStateName;
+	
+	private final ObjectName serviceStateName;
+	
+	private final ObjectName configAdminName;
+	
+	private final ObjectName permissionAdminName;
+	
+	private final ObjectName provisioningServiceName;
+	
+	private final ObjectName userAdminName;
+	
+	private ServiceTracker<MBeanServer, ?> mbeanServiceTracker;
 	
 	private BundleContext bundleContext = null;
 	
+	private StandardMBean framework;
+	
 	private StandardMBean bundleState;
 	
 	private StandardMBean bundleWiringState;
@@ -81,30 +105,6 @@
 	
 	private StandardMBean serviceState;
 	
-	private ObjectName bundleStateName;
-	
-	private ObjectName bundleWiringStateName;
-	
-	private StandardMBean framework;
-	
-	private ObjectName frameworkName;
-	
-	private ServiceTracker<MBeanServer, ?> mbeanServiceTracker;
-	
-	private ObjectName packageStateName;
-	
-	private ObjectName serviceStateName;
-	
-	private ObjectName configAdminName;
-	
-	private ObjectName permissionAdminName;
-	
-	private ObjectName provisioningServiceName;
-	
-	private ObjectName userAdminName;
-	
-	private AtomicBoolean servicesRegistered = new AtomicBoolean(false);
-	
 	private ServiceTracker<ConfigurationAdmin, ?> configAdminTracker;
 	
 	private ServiceTracker<PermissionAdmin, ?> permissionAdminTracker;
@@ -113,6 +113,22 @@
 	
 	private ServiceTracker<UserAdmin, ?> userAdminTracker;
 
+	public Activator() {
+		try {
+			frameworkName = new ObjectName(FrameworkMBean.OBJECTNAME);
+			bundleStateName = new ObjectName(CustomBundleStateMBean.OBJECTNAME);
+			bundleWiringStateName = new ObjectName(CustomBundleWiringStateMBean.OBJECTNAME);
+			serviceStateName = new ObjectName(CustomServiceStateMBean.OBJECTNAME);
+			packageStateName = new ObjectName(PackageStateMBean.OBJECTNAME);
+			configAdminName = new ObjectName(ConfigurationAdminMBean.OBJECTNAME);
+			permissionAdminName = new ObjectName(PermissionAdminMBean.OBJECTNAME);
+			provisioningServiceName = new ObjectName(ProvisioningServiceMBean.OBJECTNAME);
+			userAdminName = new ObjectName(UserAdminMBean.OBJECTNAME);		
+		} catch (Exception e) {
+			throw new IllegalStateException("Unable to start Gemini Management, Object name creation failed.", e);
+		}
+	}
+	
 	/**
 	 * {@inheritDoc}
 	 */
@@ -127,16 +143,6 @@
 			this.bundleContext = bundleContext;	
 			LOGGER.info("Starting OSGi JMX system");
 		}
-		frameworkName = new ObjectName(FrameworkMBean.OBJECTNAME);
-		bundleStateName = new ObjectName(CustomBundleStateMBean.OBJECTNAME);
-		bundleWiringStateName = new ObjectName(CustomBundleWiringStateMBean.OBJECTNAME);
-		serviceStateName = new ObjectName(CustomServiceStateMBean.OBJECTNAME);
-		packageStateName = new ObjectName(PackageStateMBean.OBJECTNAME);
-		configAdminName = new ObjectName(ConfigurationAdminMBean.OBJECTNAME);
-		permissionAdminName = new ObjectName(PermissionAdminMBean.OBJECTNAME);
-		provisioningServiceName = new ObjectName(ProvisioningServiceMBean.OBJECTNAME);
-		userAdminName = new ObjectName(UserAdminMBean.OBJECTNAME);
-
 		mbeanServiceTracker = new ServiceTracker<MBeanServer, Object>(this.bundleContext, MBeanServer.class, new MBeanServiceTracker());
 		LOGGER.fine("Awaiting MBeanServer service registration");
 		mbeanServiceTracker.open();
@@ -255,7 +261,6 @@
 			LOGGER.log(Level.FINE, "OSGi UserAdminMBean deregistration problem", e);
 		}
 		userAdminTracker = null;
-
 		servicesRegistered.set(false);
 	}
 
