anchor.diff:  	void function setupApplication(){
   		// add exception tracker to application scope
   		var HothConfig = new hoth.config.HothConfig();
  -		HothConfig.setApplicationName( getConfig().applicationname );
  -		HothConfig.setLogPath( "logs/hoth" );
  -		HothConfig.setEmailNewExceptions( getConfig().exceptiontrackerconfig.emailnewexceptions );
  -		HothConfig.setEmailNewExceptionsTo( getConfig().exceptiontrackerconfig.emailnewexceptionsto );
  -		HothConfig.setEmailNewExceptionsFrom( getConfig().exceptiontrackerconfig.emailnewexceptionsfrom );
  -		HothConfig.setEmailExceptionsAsHTML( getConfig().exceptiontrackerconfig.emailexceptionsashtml );
  +		HothConfig.setApplicationName( getConfig().name );
  +		HothConfig.setLogPath( this.applicationroot & "logs/hoth" );
  +		HothConfig.setLogPathIsRelative( false );
  +		HothConfig.setEmailNewExceptions( getConfig().exceptiontracker.emailnewexceptions );
  +		HothConfig.setEmailNewExceptionsTo( getConfig().exceptiontracker.emailnewexceptionsto );
  +		HothConfig.setEmailNewExceptionsFrom( getConfig().exceptiontracker.emailnewexceptionsfrom );
  +		HothConfig.setEmailExceptionsAsHTML( getConfig().exceptiontracker.emailexceptionsashtml );
   		application.exceptiontracker = new Hoth.HothTracker( HothConfig );
   	
   		ORMReload();
   
   		// setup bean factory
  -		var beanfactory = new frameworks.org.corfield.ioc( "/model" );
  +		var beanfactory = new frameworks.org.corfield.ioc( "/model", { singletonPattern = "(Service|Gateway)$" } );
   		setBeanFactory( beanfactory );
   
   		// add validator bean to factory
  
positive.code: 	*/		
  	private struct function getConfig(){
  		var config ={
  			applicationname = ListLast( this.applicationroot, "\/" )
  			, enquiryconfig = {
  				enabled = true
  				, subject = "Enquiry"
  				, emailto = ""
  			}
  			, exceptiontrackerconfig = { 
  				emailnewexceptions = true
  				, emailnewexceptionsto = ""
  				, emailnewexceptionsfrom = ""
  				, emailexceptionsashtml = true
  			}
  			, filemanagerconfig = {
  				allowedextensions = "txt,gif,jpg,png,wav,mpeg3,pdf,zip,mp3,jpeg"
  			}
  			, newsconfig = {
  				enabled = true
  				, recordsperpage = 10
  				, rsstitle = ""
  				, rssdescription = ""
  			}
  			, pageconfig = { 
  				enableadddelete = true
  				, excludefromprimarynavigation = "" // ids of pages to exclude from the primary navigation
  				, levellimit = 2 // number of page tiers that can be added - Bootstrap dropdown only supports two tiers
  				, touchscreenfriendlynavigation = true // ancestor page links trigger dropdown - duplicated ancestor page links appear in sub menu
  			}
  			, revision = Hash( Now() )
  			// list of unsecure sub systems and actions - all other requests are password protected
  			, securityconfig = {
  				whitelist = "^admin:security,^public:"
  			}
  		};
  		if( this.development ) config.exceptiontrackerconfig.emailnewexceptions = false;
  		return config;
  	}	
  
  
negative.code: 		beanFactory.addBean( "Validator", new ValidateThis.ValidateThis( ValidateThisConfig ) );
  
  		// add meta data bean to factory
  		beanFactory.addBean( "MetaData", new model.content.MetaData() );
  
  		// add config bean to factory
  		beanFactory.addBean( "config", getConfig() );
  	}
  	
  	/**
  