integrated peg.js / lots of convenient stuff