// If the above are implemented correctly, the GetCopy() function should be able to return a duplicate QState object by just calling Open(Save()) public QState GetCopy() { QState s = Open(Save()); s.Inherit(this); return(s); }