public Window(Game game) {
		
		// Game instance
		this.game = game;
		
		// Game and board
		this.setTitle("Chess");
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setLayout(new BorderLayout());
		this.setResizable(true);
		this.setIconImage(this.iconImage.getImage());
		this.pack();
		
		// Create menu bar
		this.menuBar = new MenuBar(game);
		this.setJMenuBar(this.menuBar);
		
		// Create board
		this.board = new Board(game);
		this.add(this.board, BorderLayout.CENTER);
		
		// Key bindings
		this.board.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, 0), "undo");
		this.board.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, 0), "redo");
		this.board.getActionMap().put("undo", new ArrowAction(this.game, "undo"));
		this.board.getActionMap().put("redo", new ArrowAction(this.game, "redo"));
		
		// Show
		this.pack();
		this.setVisible(true);
		
	}