custom file-read without io_device