private void initializeComponents(Container contentPane) {
        JButton step = new JButton("Advance algorithm");
        JButton redraw = new JButton("Redraw graph");
        step.addActionListener(new StepButtonListener(canvas.getDrawer()));
        redraw.addActionListener(new RedrawButtonListener(canvas.getDrawer()));
        canvas.addMouseListener(new GraphCanvasListener(canvas.getDrawer()));
        contentPane.add(canvas);
        contentPane.add(step, BorderLayout.SOUTH);
        contentPane.add(redraw, BorderLayout.NORTH);  
    }