         }
         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)
     }

        XCTAssertEqual(brutus.name, "Brutus")
    }
    
    func testResolutionWithParameter() {
        let _ = Guise.register(container: Container.dogs) { (name: String) in Dog(name: name) }
        let dog = Guise.resolve(container: Container.dogs, parameter: "Brutus")! as Dog

        let keys = Guise.filter(metafilter: metafilter)
        // We get back two keys, but they resolve disparate types.
        XCTAssertEqual(2, keys.count)
        let humans = Guise.resolve(keys: keys.typed()) as [Human]
        // Because we are resolving Humans, not Dogs, Brian Griffin is skipped.
        XCTAssertEqual(1, humans.count)
    }
