An approach to software composition from heterogeneous components is presented. The focus is on heterogeneity of interaction styles. The interface of a component is described in an abstract manner, hiding the component's actual interaction style. This allows for automatic generation of code that mediates between incompatible styles, thus obviating the need for manual construction of wrappers.