add function save() and saveAndDownload() into Writer interface