implemented string read