code: function getService(serviceName) {
  
  		var serviceData = services[serviceName];
  
  		if (serviceData) {
  
  			if (!serviceData.instance) {
  				// check for circular dependencies
  				if (isServiceBeingInstantiated(serviceName)) {
  					error(new ReferenceError('Circular service dependency: ' + serviceStack.join(' -> ') + ' -> ' + serviceName));
  					return null;
  				}
  
  				// flag that this service is being initialized just in case there's a circular dependency issue
  				serviceStack.push(serviceName);
  
  				serviceData.instance = serviceData.creator(application);
  
  				// no error was thrown for circular dependencies, so we're done
  				serviceStack.pop();
  			}
  
  			return serviceData.instance;
  		} else {
  			error(new Error('Service "' + serviceName + '" not found'));
  		}
  
  		return null;
  	}
docs: Returns the requested service
  @param {string} serviceName The name of the service to retrieve.
  @returns {Object} An object if the service
  @throws {Error} If service does not exist or there is a circular dependency
  @private