In this paper we present an original approach to design and implement applications that provide location-aware services. Our approach emphasizes a clear separation of the relevant concerns in the application (base behavior, context-sensitive properties, services, etc.) to improve modularity and thus simplify evo-lurion. We first motivate the problem with a simple scenario of a virtual campus; we next discuss which are the most important concerns in the application, we explain why we must separate them and show a simple approach to achieve this separation. We analyze the most important (sub) models in which we decompose a location-aware application and explain the use of dependency mechanisms to trigger behaviors related with the provision of services according to the user position. We briefly describe a proof of concept by means of an archetypical implementation we developed following our ideas. We next compare our work with others and discuss some further work we are pursuing.