add codec implemention