C# claims to be polymorphic this whole thing seems overly complicated... i.e. "A pool is technical term that refers to a group of resources, such as connections, threads, and objects. Putting a few objects into a pool allows hundreds of clients to share these few objects (you can make the same assertion for threads, connections, and other objects)." "7.5.2 The Life Cycle of a Web Form"