Extend Openemr with custom modules and Stand independent of code changes

Hi,
There are certain situations where clinics require customization which cannot be generalized . When this is done through openemr code base it will create problem when upgrade to the next version. Each upgradation require a review and merging . Is openemr provide a method to address this problem. Can a separate main menu built into the system which will be building from a database table , In that way this will be independent of code changes.