shape-implementation