public static bool Initialise(Data.PackageData a_data, IConsoleHandler a_handler, IPerformanceTracker a_tracker, IDisplayHandler a_displayHandler)
        {
            s_data = a_data ?? throw new NullReferenceException("KDebug:: DEBUG DATA NULL");

            bool bResult = false;

            // Init Log
            bResult = InitialiseLog();
            if (bResult == false)
            {
                Reset();
                return(false);
            }
            // Init Console
            s_consoleImpl = new ConsoleImpl(a_handler, s_data.ConsoleData);
            s_consoleImpl.OnAwake(s_data.ConsoleData);

            // Init Debug Display Manager
            s_displayManagerImpl = new DebugDisplayManagerImpl(a_data.DisplayData, a_displayHandler);
            s_displayManagerImpl.OnAwake();

            Tracker = a_tracker;
            Tracker.OnAwake();
            s_Initialised = true;
            return(true);
        }