Refactor, set current value on evaluate
Add tests