public void Start(){
        ComFire(new ComEvent(this, ComEvent.eType.Information, IModule.eModState.Initializing));

        for (IModule module : modules.values()) {
            System.out.println("Initializing: " + module.ModuleName());
            module.Initialize(this);
        }

        boolean allModsInitialized = false;
        while(!allModsInitialized){
            try {Thread.sleep(100);} catch (InterruptedException ex) {}

            allModsInitialized = true;
            for (IModule module : modules.values()) { allModsInitialized &= module.ModState() == IModule.eModState.Initialized; }
        }

        mem.put("FirstStart", CURRENTVER);
        ComFire(new ComEvent(this, ComEvent.eType.Information, IModule.eModState.Initialized));
    }