implementing some of the simpler evaluation methods and lazy enumerators are awesome