Several proposals for component-based development methods have started to appear. However, the emphasis is still very much on the development of components as opposed to the development with components. The main focus is on how to generate ideal reusable components not on how to plug existing components and specify their interactions and connections. The concept of a coordination contract (Andrade and Fiadeiro 1999; Andrade and Fiadeiro 2001; Andrade, Fiadeiro et al. 2001) has been proposed to specify a mechanism of interaction between objects based on the separation between structure, what is stable, and interaction, what is changeable. This separation supports better any change of requirements, as contracts can be replaced, added or removed dynamically, i.e. in run-time, without having to interfere with the components that they coordinate. A coordination contract corresponds to an expressive architectural connector that can be used to plug existing components. In this paper we integrate the concept of a coordination contract with component-based development and show how coordination contracts can be used to specify the connectors between components.