A context-aware application in the pervasive computing environment provides intuitive user centric services using implicit context cues. Personalization and control are important issues for this class of application as they enable end-users to understand and configure the behavior of an application. However most development efforts for building context-aware applications focus on the sensor fusion and machine learning algorithms to generate and distribute context cues that drive the application with little emphasis on user-centric issues. We argue that, to elevate user experiences with context-aware applications, it is very important to address these personalization and control issues at the system interface level in parallel to context centric design. Towards this direction, we present Persona, a toolkit that provides support for extending context-aware applications with end-user personalization and control features. Specifically, Persona exposes a few application programming interfaces that abstract end-user customization and control mechanisms and enables developers to integrate these user-centric aspects with rest of the application seamlessly. There are two primary advantages of Persona. First, it can be used with various existing middlewares as a ready-to-use plug-in to build customizable and controllable context-aware applications. Second, existing context-aware applications can easily be augmented to provide end-user personalization and control support. In this paper, we discuss the design and implementation of Persona and demonstrate its usefulness through the development and augmentation of a range of common context-aware applications.