Added Qexpressions and made it work for printing
Refactored out evaluation operator code
Fixed the printing issues