     }
 
     private func create(class klass: AnyClass) -> Any? {
-        if let closure : (Injector) -> (Any) = creationMethods[klass.description()] {
+        let description = Mirror(reflecting: klass).description
+        if let closure : (Injector) -> (Any) = creationMethods[description] {
             let obj : Any = closure(self)
             return obj
         }

    }
    
    private func removeBinding(class klass: AnyClass) {
        self.creationMethods.removeValue(forKey: klass.description())
    }
    
    private func removeBinding(string: String) {

    }

    private func bind(class klass: AnyClass, toBlock to: @escaping (Injector) -> (Any)) {
        let description = Mirror(reflecting: klass).description
        self.creationMethods[description] = to
    }

    public func bind<T>(_ obj: T.Type, to: T) {
