refactor, complete priority/associativity for all