heh... I remember this one hell program I had to write one time for my CS 142 class... the main topics of the course were lists and modularity in c++. The professor was a genious, and was obsessed with the idea of having pointers to pointers to pointers, or pointers to classes which had three different private members all of which were pointers to comething else... you're right, it gets to be damn hard to figure out how to dealocate everything and throw all the exceptions you need, and if there is an error it gets tricky to track it down...