Complex systems require descriptions using multiple modelling languages, or languages able to express different concerns, like timing or data dependencies. In this paper, wepropose techniques for the modular definition and composition of languages, including their abstract, concrete syntaxand semantics. These techniques are based on (meta-)modeltemplates, where interface elements and requirements fortheir connection can be established. We illustrate the ideasusing the MetaDepth textual meta-modelling tool.