implemented evaluate expression