Despite progress in the development of context aware applications and supporting systems, there is still significant diversity in the models and abstractions they expose. This work describes an effort to gain a better understanding of the situation and develop a core set of abstractions by deploying several context aware applications, using a rapid prototyping platform. From this experience we propose and demonstrate a set of abstractions shown to be useful for a range of context aware applications. Combined with a survey and analysis reported elsewhere  we then provide an analysis toward providing a core set of abstractions that we argue can be used as the basis for modeling many context aware systems, including not only context, but other aspects such as entities, their relationships and associated events, services and content. We then provide several practical lessons learned from the use of our model and abstractions during analysis and our iterative platform development process.