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

            let obj = inj.init(injector: self)
            return obj
        }
        if let aClass = klass as? NSObject.Type {
            let obj = aClass.init()
            return obj
        }
        return nil
    }
    

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