Broadly speaking, modularity is the degree to which a system's components may be separated and recombined, often with the benefit of flexibility and variety in use.[1] The concept of modularity is used primarily to reduce complexity by breaking a system into varying degrees of interdependence and independence across and "hide the complexity of each part behind an abstraction and interface".[2] However, the concept of modularity can be extended to multiple disciplines, each with their own nuances. Despite these nuances, consistent themes concerning modular systems can be identified.[3]