Untested iterative implementation of evaluate