add some useful methods
rename Drawable to Painter and pass it to the draw method instead of letting Window be a subclass of it