partially implemented read