 
     public func definePlaceholder<ObjectType: InjectableObject>(key: String = #function) -> ObjectType {
         let closure: DefinitionClosure<ObjectType>? = nil
-        return self.define(key: key, initClosure: closure)
+        return self.define(key: key, definitionClosure: closure)
     }
     
     public func defineInjection<ObjectType>(key: String = #function, definitionKey: String = #function, scope: Scope = .objectGraph, into initClosure: @autoclosure @escaping () -> ObjectType, inject injectClosure: @escaping ObjectInjectClosure<ObjectType> = { _ in } ) {

        } else {

            let definition = Definition<ObjectType>()
            initClosure?(definition)
            self.definitions[definitionKey] = definition
            
            guard var object = definition.initObject() else {

        }
    }

    fileprivate func define<ObjectType: InjectableObject, ResultType: InjectableObject>(key simpleKey: String = #function, definitionKey: String = #function, scope: Scope = .objectGraph, definitionClosure: DefinitionClosure<ObjectType>? = nil) -> ResultType {
        
        let key: String = String(reflecting: self).replacingOccurrences(of: ".", with: "")+simpleKey
        var result:ObjectType
