expression evaluator implemented. still needs some further testing