The framework should be designed keeping in mind the re-use of the utilities and common functionalities. It can be reused by multiple teams for solving the same purpose (UI/API/Mobile automation, DB connectivity, reading from/writing to files, etc.). The core functionality and capabilities should be decoupled from any specific projects.