implented shape.split