/// <summary>
        /// There's some nasty overhead here and this can take several seconds to run. Luckily it
        /// only runs on the very first request when the HttpApplication is starting up for the
        /// first time. This is not called again until a new HttpApplication object needs to be
        /// created, at which point the process is repeated.
        /// </summary>
        /// <param name="app"></param>
        void InitialiseSystemCore(HttpApplication app)
        {
            SystemCore core = new SystemCore();

            SystemCore.Instance = core;
            core.Initialise();
        }