add opengl-surface and widget base class