It's also a good practice to keep a massive system as close to the original as possible and tweak it to business needs only when absolutely necessary, otherwise it becomes a beast of its own to support and upgrade later on.
This is a great example of technical debt when adding custom features to an existing commercial platform.