Refactored trees to derive from Tree base class and only override certain virtual methods that needs changing for augmentation, now templates on node