Completed Geometry. Needs tests.