         return result
     }
     
-    /// Merge dictionary with another dictionary. When key values has intersections, values from the source dictionary will override existing values
+    /// Merge dictionary with another dictionary and return result. When key values has intersections, values from the source dictionary will override existing values
     ///
     /// - Parameter source: Source dictionary
     /// - Returns: New dictionary with self and source elemenct
-    public func merge(_ source: [Key: Value]?) -> [Key: Value] {
+    public func merged(with source: [Key: Value]?) -> [Key: Value] {
         guard let source = source else { return self }
         var res = self
         

        return res
    }
    
}

    
    /// Filter the dictionary using closure
    ///
    /// - Parameter check: filtering closure
    /// - Returns: New dictionary with filtered keys:values
    public func filter(_ check: (Key, Value) -> Bool) -> [Key:Value] {
        var result = [Key: Value]()
        for (key, value) in self {
