         XCTAssertTrue(s.contains("String"))
     }
     
-    private class Basket {
+    private struct Basket {
         let fruit: Fruit
         let number: Int
-        
-        init(_ fruit: Fruit, number: Int) {
-            self.fruit = fruit
-            self.number = number
-        }
     }
     
     private class Fruit {

        
        c.register({ ImplementsProtocol() as MyProtocol })
        
        let protocol_ : MyProtocol = c.resolve()!
        let concreteType : ImplementsProtocol? = c.resolve()
        
        XCTAssertNotNil(protocol_)
        XCTAssertNil(concreteType)
    }
    
    func testRegisterIsLazilyInvoked() {

        let c = Container()
        c.register({ return Fruit(c.resolve()!)})
        c.register({ return StringContainer(c.resolve()!)})
        c.register({ return Basket(fruit: c.resolve()!, number: c.resolve()!)})
        c.register({ return "Banana"})
        c.register({ return 12})
        
