The genetic code might be a historical accident that was fixed in the last common ancestor of modern organisms. 'Adaptive', 'historical' and 'chemical' arguments, however, challenge such a 'frozen accident' model. These arguments propose that the current code is somehow optimal, reflects the expansion of a more primitive code to include more amino acids, or is a consequence of direct chemical interactions between RNA and amino acids, respectively. Such models are not mutually exclusive, however. They can be reconciled by an evolutionary model whereby stereochemical interactions shaped the initial code, which subsequently expanded through biosynthetic modification of encoded amino acids and, finally, was optimized through codon reassignment. Alternatively, all three forces might have acted in concert to assign the 20 'natural' amino acids to their present positions in the genetic code.