How does it always happen that no matter what paradigm enterprise chooses, enterprise always, ALWAYS, manages to absolutely and utterly overengineer it? You could express this same thing in about 90 percent less code and still keep things nice and extendable.