cleaned up reader and evaluator