[feature] implement _write and _read