We show how to use various notions of genericity as tools in oracle creation. In particular, 1. we give an abstract definition of genericity that encompasses a large collection of different generic notions;2. we consider a new complexity class AWPP, which contains BQP (quantum polynomial time), and infer several strong collapses relative to SP-generics;3. we show that under additional assumptions these collapses also occur relative to Cohen generics;4. we show that relative to SP-generics, ULIN ∩ co-ULIN ⊆ DTIME(n k ) for any k, where ULIN is unambiguous linear time, despite the fact that UP ∪ (NP ∩ co-NP) ⊆ P relative to these generics;5. we show that there is an oracle relative to which NP/1∩co-NP/1 ⊆ (NP∩co-NP)/poly; and 6. we use a specialized notion of genericity to create an oracle relative to which NP BPP ⊇ MA.