implement block tx read a bit more cleanly