public void addService(Service service) {
		if (this.running) {
			throw new IllegalStateException("core is running, unable to add service " + service.getName());
		}
		
		Service oldService = this.servicesMap.put(service.getId(), service);
		if (oldService != null) {
			this.servicesMap.put(oldService.getId(), oldService);
			throw new RuntimeException("service with id " + oldService.getId() + " already added");
		}
		this.services.add(service);
	}