Implementation of "strategy" design pattern

End user can now implement the EvaluationStrategy interface to provide their own customized evaluation implementations.