fiddling with dimap and contramap