Removed CanReduce
Moved terminal construction to factory
Symbols no longer reduce themselves
removed virtual member call in ctor