This will potentially add more complexity to the platform overall, Writing generic code always does.
However we do not want to put ourselves into a position where adding new envelopes requires code changes, unless they are adding new functionality to the platform.