merge writer and reader into progress struct