Add ShapeDragContext to support a single ShapeFactory creating a family of related Shapes.