routine can decide whether to load files from the updates directory or the install directory fig5 illustrates a generalized example of a suitable computing environment 500 in which several of the described techniques and tools may be implemented the computing environment 500 is not intended to suggest any limitation as to scope of use or functionality as the techniques and tools may be implemented in diverse general purpose or special purpose computing environments with reference to fig5 the computing environment 500 includes one or more processing units 510 515 and memory 520 525 that can be used in implementing a computing device in fig5 this most basic configuration 530 is included within a dashed line the processing units 510 515 execute computer executable instructions a processing unit can be a general purpose central processing unit cpu processor in an application specific integrated circuit asic or any other type of processor in a multi processing system multiple processing units execute computer executable instructions to increase processing power for example fig5 shows a central processing unit 510 as well as a graphics processing unit or co processing unit 515 the memory 520 525 may be volatile memory e g registers cache ram non volatile memory e g rom eeprom flash memory etc or some combination of the two accessible by the processing unit s the memory 520 525 stores software 580 implementing one or more innovations for updating client applications a computing environment may have additional features that can be used for implementing embodiments described herein for example the computing environment 500 includes storage 540 one or more input devices 550 one or more output devices 560 and one or more communication connections 570 an interconnection mechanism.