             }
         }
     }
+    
+    convenience init(_ val: DictionaryLiteral<String, Any>) throws {
+        try self.init(q(val))
+    }
 }
 
 

let coll = client.getCollection(db: "test", collection: "test")
let yey = try coll.find(q(["test": true]), fields: nil)

let test = try MutableBson(q(["test": true, "test2": Int64(42)])) as Bson

print(test.get("test2")!)

print("IT BEGINS")


// Needed to stop booleans being coerced to integers, and NSObjects appearing out of nowhere
func q(x: [String: Any]) -> [String: Any] {
    return x
}

func q(x: DictionaryLiteral<String, Any>) -> [String: Any] {
    var out = [String: Any]()
    
    for (k, v) in x {
        out[k] = v
    }
    
    return out
}


