             static let User = "user"
             static let Privacy = "privacy"
             static let Embed = "embed"
+            static let Metadata = "metadata"
+            static let Connections = "connections"
         }
         
         struct Value {

            static let Privacy = VIMPrivacy.self
            static let User = VIMUser.self
            static let Embed = AlbumEmbed.self
        }
    }
    

    public override func didFinishMapping() {
        self.createdTime = self.formatDate(from: self.createdTimeString)
        self.modifiedTime = self.formatDate(from: self.modifiedTimeString)
        self.parseConnections()
    }
    
    public func conntectionWithName(connectionName: String) -> VIMConnection? {
        return self.connections?[connectionName] as? VIMConnection
    }
    
    private func parseConnections() {
        guard let dictionary = self.metadata?[Constant.Key.Connections] as? [String: Any] else {
            return
        }
        
        self.connections = [String: Any]()
        for (key, value) in dictionary {
            if let valueDict = value as? [String: Any] {
                self.connections?[key] = VIMConnection(keyValueDictionary: valueDict)
            }
        }
    }
    
    // MARK: - Private
