Improved ShapeSorter, but is incomplete