basically done using codebook