In this paper we show how to use a (subset) of UML as an Unified Coordination Language (UnCL) that is based on a separation of concerns between coordination and computation. As such UnCL provides a general language for the coordination of, in particular, object-oriented applications. The basic idea of UnCL is to use UML as a formalism to specify the `glue code' in terms of state-machines which are added to the classes of the underlying applications. These state-machines describe the coordination of the objects of the underlying applications in terms of sending and receiving events. We introduce a formal semantics of UnCL and discuss its implementation using a new tool for the transformation of XML data which is based on a new Rule Markup Language (RML). Finally, we discuss the incorporation of a more high-level coordination mechanism called MoCha, an exogenous coordination framework for (distributed) communication and collaboration using mobile channels as its medium