computing systems environments and or configurations that may be suitable for use with the invention include but are not limited to personal computers pcs server computers hand held or laptop devices multi processor systems microprocessor based systems programmable consumer electronics network pcs minicomputers mainframe computers and the like the invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network or other data transmission medium in a distributed computing environment program modules may be located in both local and remote computer storage media including memory storage devices fig4 thus illustrates an example of a suitable computing system environment 100 which may be used in the implementation of this invention although as made clear above the computing system environment 100 is only one example of a suitable computing environment and is not intended to suggest any limitation as to the scope of use or functionality of the invention neither should the computing environment 100 be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary operating environment 100 with reference to fig4 an exemplary system 100 includes a general purpose computing device in the form of a computer 110 components of computer 110 may include but are not limited to 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 the system bus 121 may be any of several types of bus structures including a memory bus or.