changed shape class to use point2d