added a proper expression parser