reduced shift conflicts by adding precedence