first bash at cleaning up shapes. needs rewrite for perf and capabilities