Libraries of P450-BM3 mutants were generated by site saturation mutagenesis, targeting active site amino acid residues, followed by gene shuffling to combine beneficial Degenerate NNK codons were used to generate fragments that coded for all 20 amino acids. The linear fragments were then amplified using the appropriate 3' and 5' oligonucleotide primers. The linear fragments and the pET28b vector were digested using NdeI and XhoI endonucleases, and subsequently ligated using T4 DNA ligase. After each round of evolution, beneficial mutations were combined by overlap extension PCR. Primers were designed that encoded the identified mutation, these primers were used to generate short fragments which were gel-purified and mixed appropriately in overlap extension PCR to generate genes containing all possible combination of mutations.