private void initialize() {
		mouseHandler = new MouseHandler();
		
		setTitle("BEZIER bezier BEZIER bezier BEZIER bezier BEZIER bezier BEZIER bezier BEZIER bezier");
		setSize(Constants.WINDOW_WIDTH, Constants.WINDOW_HEIGHT);
		setVisible(true);
		setResizable(false);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		getContentPane().setLayout(null);

		bezierPanel = new JPanel();
		bezierPanel.setBounds(10, 10, Constants.PANEL_WIDTH, Constants.PANEL_HEIGHT);
		getContentPane().add(bezierPanel);
		bezierPanel.setBackground(Color.BLACK);
		bezierPanel.addMouseListener(mouseHandler);
		bezierPanel.addMouseMotionListener(mouseHandler);
		
		commutator = new JToggleButton("Creator Mode");
		commutator.setBounds(Constants.WINDOW_WIDTH/2 - 60, Constants.WINDOW_HEIGHT - 60, 120, 25);
		getContentPane().add(commutator);
		commutator.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				if (commutator.isSelected()) {
					modState = ModState.Editing;
					commutator.setText("Interact Mode");
					mouseHandler.reset();
					paint();
				}
				else {
					modState = ModState.Creating;
					commutator.setText("Creator Mode");
					mouseHandler.reset();
				}
			}
		});
		
		doubleBuffer = new BufferedImage(Constants.PANEL_WIDTH, Constants.PANEL_HEIGHT, BufferedImage.TYPE_INT_RGB);
		state = State.Drawing;
		modState = ModState.Creating;
		curveManager = new CurveManager();
		start();
	}