added ability to parse an expression from a string