Part 3 is back up. Had to peek behind protected access in order to provide type checking. Was looking for a better way. I may have found one that will end up being better for when I solve for non-void returns.

This version uses C++0x stuff. The next part will be even more so.