             }
     })
 }
+
+
+
 
 // domain/container/value
 

public class KVStore {
    public var domains: [String : KVStoreDomain] = [:]
    
    public subscript(key: String) -> KVStoreDomain? {
        return domain(forKey: key)
    }
    
    public func addDomain(key: String, domain: KVStoreDomain = KVStoreDomain()) -> KVStoreDomain {
        self.domains[key] = domain
        return domain
    }

        self.encode(value, key)
    }
    
    /// Merge a containers data into the receiver
    /// adding or updating any values
    public func merge(store: KVStoreContainer) {
        self.data.merge(store.data)
