As systems of multiple robots become more prevalent both in research and in real world applications, they may be required to handle new missions, collaborate in teams they are not necessarily familiar with, and react, during mission execution, to changes in both the environment and in their own abilities. In this paper we describe a six-layered architecture that handles inherently these challenges, as well as allowing human operator to oversee and intervene whenever needed. We have implemented the architecture and demonstrate the activity flow of execution, namely: how does the system and its components react to dynamic changes. We have conducted experiments in both simulation and in real robots, and show the efficiency of the system in two different parameters: cost of coordination and communication, and mission performance. The implementation is open source, and available for future use.