more hacking on decoding (with an immutable Reader