This paper describes an evolution of the ComponentJ pro- gramming language, a component-based Java-like programming lan- guage where composition is the chosen structuring mechanism. Com- ponentJ constructs allow for the high-level specification of component structures, which are the basis for the definition of compound objects. In this paper we present a new language design for ComponentJ which is more flexible and also allows the dynamic reconfiguration of objects. The manipulation of components and composition operations at the pro- gramming language level allows for the compile time verification, by a type system, of safety structural properties of ComponentJ programs. This work is based on earlier fundamental results where the main con- cepts are presented and justified in the form of a core component calcu- lus.