implementing codon model