public App(ASMController a) {
		this.asmController = a;
		try {
			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (InstantiationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (UnsupportedLookAndFeelException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		initialize();

		// When in doubt, add moar threads
		ExecutorService executorService = Executors.newFixedThreadPool(3);
		executorService.execute(new Runnable() {
			@Override
			public void run() {
				getSimpleModePanel();
			}
		});
		executorService.execute(new Runnable() {
			@Override
			public void run() {
				getHelpPanel();
			}
		});
		executorService.execute(new Runnable() {
			@Override
			public void run() {
				getInstructionPanel();
			}
		});
		executorService.execute(new Runnable() {
			@Override
			public void run() {
				getHelpPanel();
			}
		});
		executorService.shutdown();

	}