Some ShapeComponent refactoring