         }
         let _ = Guise.register(instance: Human(name: "Augustus"), name: "Augustus", container: Container.people, metadata: 77)
         let metafilter: Metafilter<HumanMetadata> = { $0.coolness > 1 }
-        let keys = Guise.filter(container: Container.people, metafilter: metafilter)
+        let keys = Guise.filter(type: Human.self, container: Container.people, metafilter: metafilter)
         let people = Guise.resolve(keys: keys) as [Human]
         XCTAssertEqual(2, people.count)
     }

    }
    
    func testKeyEquality() {
        let key1 = Key(type: Int.self, name: "three", container: Name.default)
        let key2 = Key(type: Int.self, name: "three", container: Name.default)
        let key3 = Key(type: Int.self, name: Name.default, container: Name.default)
        XCTAssertEqual(key1, key2)
        XCTAssertNotEqual(key1, key3)
    }

        let _ = Guise.register(instance: Dog(name: "Fido") as Animal, name: "Fido", metadata: 10)
        let _ = Guise.register(instance: 7, metadata: 4)
        let metafilter: Metafilter<Int> = { $0 >= 3 }
        let keys = Guise.filter(type: Animal.self, metafilter: metafilter)
        let animals = Guise.resolve(keys: keys) as [Key<Animal>: Animal]
        // The registration of the integer 7 above is skipped, because it is not an Animal.
        XCTAssertEqual(2, animals.count)
    }
    
    func testResolutionByKey() {
        let key = Guise.register(instance: Dog(name: "Lucy"))
        XCTAssertNotNil(Guise.resolve(key: key) as Dog?)
    }
    
    func testResolutionsWithKeysOfIncorrectTypeAreSkipped() {
