small improvements to shapes, also adding shapegraph