implement an expression tree
// http://cs.stanford.edu/people/eroberts/courses/cs106b/chapters/14-expression-trees.pdf // to be continued