# Unlock **def create_or_merge_managers(self, urls):** - We shouldn't be setting the lock address on the manager's Wallet node. **key creation** *raw data for keys* for k in l["keys"]: keys_tmp = { "id": k["id"], "address": address, "expiration": k["expiration"], "tokenURI": k["tokenURI"], "createdAt": k["createdAt"], "network": network, } we need to be setting `address` from here as `tokenAddress` and `id` as `tokenId` **def create_or_merge_managers(self, urls):** Managers are not `Manager` nodes in the graph, they are `Wallet` nodes. **def create_or_merge_holders(self, urls):** Holders are not holder nodes in the graph, they are `Wallet` nodes. - they should not have data from the nft on their nodes, i.e. keyId, etc. They should just have the wallet address. **def link_or_merge_managers_to_locks(self, urls):** - We should be creating these edges based on the data saved in lockManagers, not data set on the nodes in the graph **def link_or_merge_locks_to_keys(self, urls):** This can be a query that matches on `tokenAddress` which should be the same on locks / keys ** def link_or_merge_holders_to_locks(self, urls):** - holders are wallets - data to create edges should be taken from `lockManagers` not from nodes in graph **def link_or_merge_holders_to_keys(self, urls):** - Ibid