ShapeService refacotred