public DrawArea(Stack<IPaintable> a) {
        actions = a;

        zapl = new ZoomAndPanListener(this);
        this.addMouseWheelListener(zapl);
        this.addMouseListener(zapl);
        this.addMouseMotionListener(zapl);

        this.addKeyListener(new KeyListener() {
            public void keyReleased(KeyEvent e) {
                TowersOfHanoi.doStep = true;
            }

            public void keyPressed(KeyEvent e) {}
            public void keyTyped(KeyEvent e) {}
        });

        Dimension d = getSize();
        offScreen = createImage(d.width, d.height);

        //this.setBackground(Color.white);
    }