Implemented read_block(), write_block(), save(), and restore()