Taking a small step in the 2D subsystem: introducing Abstract2dModel and Square. These are used to the first 2D -> 3D projections: the Ring 3D object.