First pass at rewriting eval as a sub-module.