first stab at a BNF construction