add readers and writers and docs