     override class func setUp() {
         super.setUp()
         DependencyResolver.register{ ServerCommunicator(widgetCount: 3) as ServerCommunicating }
-        DependencyResolver.register(name: "sc2") { ServerCommunicator(widgetCount: 7) as ServerCommunicating }
+        DependencyResolver.register(name: "sc2") { () -> ServerCommunicating in
+            let eight = DependencyResolver.resolve(name: "8")! as Int
+            return ServerCommunicator(widgetCount: eight)
+        }
         DependencyResolver.register(name: "sc3") { (count: Int) in ServerCommunicator(widgetCount: count) as ServerCommunicating }
+        DependencyResolver.register(8, name: "8") // Any type can be registered
     }
     
     func testResolveServerCommunicator() {

        let serverCommunicator = DependencyResolver.resolve(count, name: "sc3")! as ServerCommunicating
        XCTAssertEqual(serverCommunicator.retrieveWidgetCount(), count)
    }
}

    
    func testResolveNamedServerCommunicator() {
        let serverCommunicator = DependencyResolver.resolve(name: "sc2")! as ServerCommunicating
        XCTAssertEqual(serverCommunicator.retrieveWidgetCount(), 8)
    }
    
    func testResolveParameterizedNamedServerCommunicator() {
