Templated Evaluators

Realized that the evaluation algorithm is capable of working with any
type, so all relevant framework classes were converted to templates.