add logic operators, implement precedence