added ColorPalette constructors, made the DrawableSurface set up its own event listeners