```\nmodifier initiator(\n DataStoreUtils.DataStore storage DATASTORE,\n uint256 \_TYPE,\n uint256 \_id,\n address \_maintainer\n) {\n require(\n msg.sender == DATASTORE.readAddressForId(\_id, "CONTROLLER"),\n "MaintainerUtils: sender NOT CONTROLLER"\n );\n require(\n DATASTORE.readUintForId(\_id, "TYPE") == \_TYPE,\n "MaintainerUtils: id NOT correct TYPE"\n );\n require(\n DATASTORE.readUintForId(\_id, "initiated") == 0,\n "MaintainerUtils: already initiated"\n );\n\n DATASTORE.writeAddressForId(\_id, "maintainer", \_maintainer);\n\n \_;\n\n DATASTORE.writeUintForId(\_id, "initiated", block.timestamp);\n\n emit IdInitiated(\_id, \_TYPE);\n}\n```\n