Distributed programming environments commonly restrict programmers to one form of intercomponent interaction. This forces programmers to emulate other interaction styles in terms of the dominant paradigm, obscuring their intent and resulting in a loss of clarity. Starting from a clear model of interaction between program components, this paper attempts to restore this missing clarity of intent. It achieves this by proposing a language tailored to the description of new and existing interaction styles that separates the specification of intercomponent interaction from the programming interface visible internally to the component.