protected override void StartupApplication()
        {
            //kill known owned processes to release inherited socket handles
            if (ApplicationViewModel.KillOwnedProcesses())
            {
                //otherwise may still be prompted below by check for disowned miners
                System.Threading.Thread.Sleep(500);
            }

            //check for disowned miners before refreshing devices
            if (app.ApplicationConfiguration.DetectDisownedMiners)
            {
                app.CheckForDisownedMiners();
            }

            app.SetupCoinApi(); //so we target the correct API
            app.RefreshCoinStats();

            app.SetupCoalescedTimers();
            app.UpdateBackendMinerAvailability();
            app.CheckAndDownloadMiners();
            app.SetupRemoting();
            app.SetupNetworkDeviceDetection();
            app.CheckForUpdates();
            app.SetupMiningOnStartup();
            //app.SubmitMultiMinerStatistics();

            mineOnStartTimer.Enabled = true;
        }