environments with many types of computer system configurations including personal computers hand held devices multi processor systems microprocessor based or programmable consumer electronics networked pcs minicomputers mainframe computers and the like the invention may also be practiced in distributed computing environments where tasks are performed by local and remote processing devices that are linked either by hardwired links wireless links or by a combination of hardwired or wireless links through a communications network in a distributed computing environment program modules may be located in both local and remote memory storage devices an exemplary system for implementing the inventions which is not illustrated includes a general purpose computing device in the form of a conventional computer including a processing unit a system memory and a system bus that couples various system components including the system memory to the processing unit the computer will typically include one or more magnetic hard disk drives also called u201c data stores u201d or u201c data storage u201d or other names for reading from and writing to the drives and their associated computer readable media provide nonvolatile storage of computer executable instructions data structures program modules and other data for the computer although the exemplary environment described herein employs a magnetic hard disk a removable magnetic disk removable optical disks other types of computer readable media for storing data can be used including magnetic cassettes flash memory cards digital video disks dvds bernoulli cartridges rams.