Get rid of Evaluate method on Nodes and implement the Visitor pattern instead. Closes #10

Fixed some todos also
Merged