refine AbstractPainter
implement Painter with AbstractPainter interface