This is where refactoring comes into play. Your beautiful design represents your understanding of the requirements at the time which you solved. These new requests are showing you aspects of your system you maybe didn't think of and therefore didn't factor into your initial design. I presume had you been aware of them all, your design would already account for them.
This is a natural process by which software grows and the developer gains new understanding of their own product. I would suggest going ahead and making whatever ugly changes you need now, and then refactor back into an orderly structure as things settle down. You'll probably have made new insights by then and will be able to update the design to match.
This is a natural process by which software grows and the developer gains new understanding of their own product. I would suggest going ahead and making whatever ugly changes you need now, and then refactor back into an orderly structure as things settle down. You'll probably have made new insights by then and will be able to update the design to match.