Adapting Programs