I dunno, I often feel things get complicated when such an incredibly simple solution encounters a set of additional requirements.
They often tend to be sort of bolted on, rather than integrated neatly by rewriting the thing to a new simple solution that caters to both requirement sets.
The problem is more like Katamari Damacy-code than spaghetti code.