decoratorized parsing, now takes callbacks (becomes decorator)