added evaluator, seems to be working, there are some precision issues besides that everything seems fine