protected function applyInitializers(stdClass $config) {
		foreach ($config as $id => $definitionConf) {
			if (! isset($definitionConf->type)) {
				throw new Exceptions\InvalidConfig('Service definition must contain a "type" property"');
			}
			
			if ($definitionConf->type === 'namespace') {
				if (! isset($definitionConf->namespace)) {
					throw new Exceptions\InvalidConfig('Initializer definition of type "namespace" must contain a "namespace" property');
				}
				
				$initializer = new InitializerNamespace($definitionConf->namespace);
			}
			else if ($definitionConf->type === 'object') {
				if (! isset($definitionConf->class)) {
					throw new Exceptions\InvalidConfig('Initializer definition of type "object" must contain a "class" property');
				}
				
				$initializer = new $definitionConf->class();
			}
			else {
				throw new Exceptions\InvalidConfig('Unknown type of initializer: "' . $definitionConf->type . '"');
			}
			
			if (! empty($definitionConf->factory)) {
				$initializer->setFactoryMode();
			}

			if (isset($definitionConf->arguments)) {
				$args = $this->processArguments($definitionConf->arguments);

				$initializer->setArguments($args);
			}

			$this->container->addLocator($initializer, $id);
		}
	}