New Substitution based evaluator.  Still buggy.