chapter1- basic expression tree and support abstract/concete types