 
 
 
-    private mutating func put(_ keySet: KeySet, _ value: Value)
+    private mutating func put(keySet: KeySet, value: Value)
     {
         assert(keySet.count == self.keys)
 
         // assign don't-care keys
-        var assignedKeys = keySet // FIXME: how to handle generating new key of KeyType? keySet.map({$0 ?? self.dontCareKey()})
+        let assignedKeys = keySet // FIXME: how to handle generating new key of KeyType? keySet.map({$0 ?? self.dontCareKey()})
 
         if !self.contains(assignedKeys)
         {

        self.root = self.put(self.root, assignedKeys, 0, value)
    }

    private func put(_ node: Node<KeyType, Value>?, _ keySet: KeySet, _ index: Int, _ value: Value) -> Node<KeyType, Value>
    {
        assert(keySet.count == self.keys)
        

        return matches.count > 0
    }

   	public mutating func insert(_ value: Value, keys: KeyType?...)
   	{   	
   		self.put(keySet: keys, value: value)
   	}

   	public func find(_ keys: KeyType?...) -> [Value]
   	{
   		return self.get(keys)
   	}


    private func get(_ keySet: KeySet) -> [Value]
