                 let inventoryRecord = character.inventory.flatMap { Item.recordFor(item: $0) }
                 for itemRecord in inventoryRecord {
                     itemRecord["owningCharacter"] = CKReference(record: savedCharacter!, action: .deleteSelf)
-                    CloudKit.shared.publicDatabase.save(itemRecord, completionHandler: { (savedItem, error) in
+                    CloudKit.shared.privateDatabase.save(itemRecord, completionHandler: { (savedItem, error) in
                         print("Saving items within inventory")
                         debugPrint(error ?? "No error")
                         debugPrint(savedItem ?? "no saved record")

                        let recordToMatch = CKReference(recordID: listID, action: .deleteSelf)
                        let predicate = NSPredicate(format: "owningCharacters =%@", recordToMatch)
                        let query = CKQuery(recordType: "Item", predicate: predicate)
                        self.publicDatabase.perform(query, inZoneWith: nil, completionHandler: { (fetchedItems, error) in
                            if error != nil {
                                print("Error fetching items in characterFetch")
                                print(error!.localizedDescription)

// TODO: Fix this shit somehow.
    func saveCharacter(character: Character, completion: @escaping PostCompletion) {
        let characterRecord = try? Character.recordFor(character: character)
        self.privateDatabase.save(characterRecord!!) { (savedCharacter, error) in
            if error != nil {
                print(error!.localizedDescription)
                OperationQueue.main.addOperation {
