compiles and links now.  Might be a good thing.  Also now the SPN is repersented as pointers to nodes instead of just nodes.  This is because the abstract base class kind of needs it.