private TDGame() {
		towers = new MappedMap<Integer, Integer, Tower>();
		logicActions = new ArrayList<ActionDispatcher>();
		mapView = new MapView();
		buildGUI = new BuildGUI();
		towerInfo = new TowerInfo();
		towerGroup = new TowerGroup();

		mapView.addKeyListener(buildGUI.createUnselectListener());
		createFrame();

		gameFrame.getContentPane().setLayout(new BorderLayout());
		gameFrame.getContentPane().add(mapView, BorderLayout.CENTER);

		JPanel sidePanels = new JPanel();
		sidePanels.setLayout(new BoxLayout(sidePanels, BoxLayout.PAGE_AXIS));
		sidePanels.add(buildGUI);
		sidePanels.add(towerInfo);
		sidePanels.add(new JPanel());
		gameFrame.getContentPane().add(sidePanels, BorderLayout.EAST);

		gameFrame.pack();
		gameFrame.setLocationRelativeTo(null);

		piecesManager = new PiecesManager();
		waveManager = new WaveManager();
	}