Adaptation is a key word for nomadic applications, since the execution environment that a nomadic user has varies in place and time. Traditional applications are designed and optimised for a specific environment, usually with high bandwidth and high computational power, and they do not fit well in other environments. In this paper we present a solution based on a dynamic composition of the execution environment, where the adaptation is done by construction: An instance of the application is build dynamically depending on the characteristics of the device. We introduce the concept of basic modules and the role of the Personal Agent and we present an example application.