documented Reader and Write