fix precedence bug