Adding new methods to a class is a perfectly fine way to evolve code. If this is not considered SOLID then SOLID (or at least this interpretation of SOLID) is the problem, not the code. That said, since this is TypeScript you could just have stand-alone functions like `createRectangleFromWidthAndHeight()` and `createRectangleFromRectangle()` outside of any class. If you need to add new ways to create shapes you just add another function and no class is modified.