refactoring
add interactive evaluator