This class is inmense. I think it deserves its own file. Pass along those attributes needed from the PaintingWidget