with codebook