separate writing reading