ditched BasePanel, changed to canvas, double buffered rendering