TextDrawingArea refactored lots