         )
     }
     
-    public func weakShared<T: AnyObject>(name: String, factory: @autoclosure () -> T, configure configureOrNil: ((T) -> ())? = nil) -> T {
+    public func weakShared<T: AnyObject>(name: String, @autoclosure factory: () -> T, configure configureOrNil: ((T) -> ())? = nil) -> T {
         return inject(
             lifecyle: .WeakShared,
             name: name,

        )
    }
    
    public func unshared<T>(name: String, factory: @autoclosure () -> T, configure configureOrNil: ((T) -> ())? = nil) -> T {
        var unsharedInstances: [String:AnyObject] = [:]
        return inject(
            lifecyle: .Unshared,

    
    public init() { }
    
    public func shared<T>(name: String, @autoclosure factory: () -> T, configure configureOrNil: ((T) -> ())? = nil) -> T {
        return inject(
            lifecyle: .Shared,
            name: name,
