partial read/write working