public void addComponents(HBox layout) {
		cbMechanics.setItems(FXCollections.observableArrayList("Physics",
				new Separator(), "Projectile Motion", "Friction"));
		cbWaves.setItems(FXCollections.observableArrayList(
				"Optics, Waves and Modern Physics", new Separator(),
				"Simple Harmonic Motion", "Doppler Effect"));
		cbElectricity.setItems(FXCollections.observableArrayList(
				"Electricity and Magnetism", new Separator(), "RC Circuit",
				"Lorentz Law"));
		// set default value
		cbMechanics.getSelectionModel().selectFirst();
		cbWaves.getSelectionModel().selectFirst();
		cbElectricity.getSelectionModel().selectFirst();
		// add listener
		cbMechanics.getSelectionModel().selectedIndexProperty()
				.addListener(new ChangeListener<Number>() {

					@Override
					public void changed(
							ObservableValue<? extends Number> obsVal,
							Number oldVal, Number newVal) {
						cbWaves.getSelectionModel().selectFirst();
						cbElectricity.getSelectionModel().selectFirst();

						btnMenu.setDisable(false);

						switch (newVal.intValue()) {
						case 2:
							addCenterPane(new ProjectileMotion());
							break;
						case 3:
							addCenterPane(new Friction());
							break;
						}

					}

				});
		cbWaves.getSelectionModel().selectedIndexProperty()
				.addListener(new ChangeListener<Number>() {

					@Override
					public void changed(
							ObservableValue<? extends Number> obsVal,
							Number oldVal, Number newVal) {
						cbMechanics.getSelectionModel().selectFirst();
						cbElectricity.getSelectionModel().selectFirst();

						btnMenu.setDisable(false);

						switch (newVal.intValue()) {
						case 2:
							addCenterPane(new SHM());
							break;
						case 3:
							addCenterPane(new DopplerEffect());
							break;
						}
					}

				});
		cbElectricity.getSelectionModel().selectedIndexProperty()
				.addListener(new ChangeListener<Number>() {

					@Override
					public void changed(
							ObservableValue<? extends Number> obsVal,
							Number oldVal, Number newVal) {
						cbWaves.getSelectionModel().selectFirst();
						cbMechanics.getSelectionModel().selectFirst();

						btnMenu.setDisable(false);

						switch (newVal.intValue()) {
						case 2:
							addCenterPane(new RCCircuit());
							break;
						case 3:
							addCenterPane(new LorentzLaw());
							break;
						}
					}

				});
		btnMenu.setOnAction(new ButtonListener());
		layout.getChildren().add(cbMechanics);
		layout.getChildren().add(cbWaves);
		layout.getChildren().add(cbElectricity);
		layout.getChildren().add(btnMenu);
	}