Pull out evaluation into it's own code