Improved read,write