Since the publication of the IMS LD specification it has been recognised that the lack of a rich set of runtime services is a major barrier to adoption. The approaches taken to resolving this problem are reviewed, and their strengths and limitations identified. A generic widget server developed by the authors is described. Integration of the widget server with the IMS LD runtime system provides an extensible set of services. This has been demonstrated with the creation of widgets for forums, messaging, vote, and Google maps which are provided for users within the context of their role and activities in a Unit of Learning. Authoring and administration are described, showing how the system is both extensible and portable