private static void start() {
        cslhandler = new CryptedSLHandler(cookiemanager);
        ccui = new CCUserInterface(cookiemanager, slhandler, cslhandler);
        downloadIcon();

        cslhandler.load();

        System.out.println("HELPER INFO:\n" + StringUtils.getColumnizedString(EnumHelper.getAllHelpersAsStringArray()));
        System.out.println("\nStarting game...\n");

        while (true) {
            if (lastTime_1 == 0) lastTime_1 = System.nanoTime();
            if (lastTime_2 == 0) lastTime_2 = System.nanoTime();
            if (lastTime_3 == 0) lastTime_3 = System.nanoTime();
            if (lastHandmadeCookies == 0) lastHandmadeCookies = cookiemanager.getHandmadeCookies();

            thisTime_1 = System.nanoTime();
            thisTime_2 = System.nanoTime();
            thisTime_3 = System.nanoTime();

            // only run this TICKS_PER_SECOND times per second
            if ((thisTime_1 - lastTime_1) / 1000000 >= 1000 / TICKS_PER_SECOND) {
                // ======================================//
                // STUFF TO RUN EACH TICK
                // ======================================//

                INSTANCE.handleTick();
                ccui.updateUI();
                lastTime_1 = System.nanoTime();
            }

            if ((thisTime_3 - lastTime_3) / 1000000 >= 2 * 1000) {
                INSTANCE.handleAchievements();
                thisHandmadeCookies = cookiemanager.getHandmadeCookies();

                handmadePerSec = (thisHandmadeCookies - lastHandmadeCookies) / 2;

                lastHandmadeCookies = cookiemanager.getHandmadeCookies();
                lastTime_3 = System.nanoTime();
            }

            if ((thisTime_2 - lastTime_2) / 1000000 >= SECOND_TASK_EACH_SECONDS * 1000) {
                // ===================================================//
                // STUFF TO RUN EVERY SECOND_TASK_EACH_SECONDS SECONDS
                // ===================================================//

                // Save game state
                new Thread(new SaveThread(ccui, cslhandler)).start();

                lastTime_2 = System.nanoTime();
            }
        }
    }