updated BNF