implemented read/write interfaces