adding structured writer and reader extended