practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network in a distributed computing environment program modules may be located in both local and remote computer storage media including memory storage devices with reference to fig1 an exemplary system 100 for implementing the invention includes a general purpose computing device in the form of a computer 110 including a processing unit 120 a system memory 130 and a system bus 121 that couples various system components including the system memory to the processing unit 120 computer 110 typically includes a variety of computer readable media by way of example and not limitation computer readable media may comprise computer storage media and communication media the system memory 130 includes computer storage media in the form of volatile and or nonvolatile memory such as read only memory rom 131 and random access memory ram 132 a basic input output system 133 bios containing the basic routines that help to transfer information between elements within computer 110 such as during start up is typically stored in rom 131 ram 132 typically contains data and or program modules that are immediately accessible to and or presently being operated on by processing unit 120 by way of example and not limitation fig1 illustrates operating system 134 application programs 135 other program modules 136 and program data 137 the computer 110 may also include other removable nonremovable volatile nonvolatile computer storage media by way of example only fig1 illustrates a hard disk drive 141 that reads from or writes to nonremovable nonvolatile magnetic media a magnetic disk drive 151 that reads from or writes to a removable nonvolatile magnetic disk.