Component-based software engineering (CBSE) is based on the fundamental concepts of components and bindings, i.e. units of decomposition and their interconnections. By adopting CBSE, a system is built-up by means of a set of re-usable parts. This entails that systems functionalities are appropriately identified so that implementing components can be accordingly selected. In turn, this means that each component-based design is at least made-up of two different instantiation levels, i) one for designing the system in terms of components and their interconnections, ii) and one for linking possible implementation alternatives for each of the existing components. In general, this twofold instantiation is managed at the same metamodelling level through the use of relationships. Despite such solutions are expressive enough to model a component-based system, they cannot represent the instantiation relationship between, e.g., a component and its implementations. As a consequence, validity checks have to be hard-coded in a tool, while the interconnection between component and implementation have to be managed by the user. In this paper we propose to exploit deep metamodelling techniques for implementing CBSE mechanisms. We revisit CBSE main concepts through this new vision by showing their counter- parts in a deep metamodelling based environment. Interestingly, multiple instantiation levels enhance the expressive power of CBSE approaches, thus enabling a more precise system design.