add Codec.emap

allows validation of data passing through codec
adjust per the review feedback
Add emap and econtramap to Decoder and Encoder