Modern e-commerce applications tend to have a lot of different user interfaces; the most important today are Java and HTML, but there are also emerging technologies like agents, WAP cellular telephones, or even 3D environments (VRML). The difficulty is to make all those interfaces work together with the same application in an almost similar and transparent way and to keep them synchronized with each other during the lifetime of the application. Our approach is to describe the interactions of a user interface (rather than the elements or components) with an XML description called IML (Interaction Markup Language). Unlike UIML (User Interface Markup Language), these interactions are then assigned to technology-specific interactions first, which in turn are then finally assigned to a particular implementation. An IML description is also stable against future developments: to enable an application for a new device, only the IML renderer has to be implemented.