in hindsight, that definition of ArcSegment was TERRIBLE. Rewrote it, implemented all nice and clean