added operator precedence