change Evaluate() methods from abstract to virtual, but does nothing. Each feature function can override 1 or more of them if they wish