implemented the evaluator, and added variable handling