In-situ reconfiguration is indispensable in sensor network deployments. It is required for efficient management and upgrade of software in large scale sensor networks, re-tasking a deployed network or for recovering a deployed system from crippling bugs or malicious intent. A spectrum of techniques for re-programming have been proposed. The major approaches are: 1. Full binary upgrade supported by TinyOS/Deluge mechansim that allows arbitrary changes to the functionality but incurs a high transmission and storage cost. 2. SOS operating system for sensor nodes consists of a static kernel that is extensible through modular extensions that can be installed and updated over the air. 3. Application specific virtual machines (ASVMs) are domain specific interpreters built on top of TinyOS to enable limited high-level changes to the functionality by injecting concise application level scripts. The three approaches vary in the cost and the flexibility of the updates that they can support. The nature of the update determines the most suitable technique. We have built a system that supports this complete hierarchy of reconfiguration.