case class now extends Product
moved lenses to new macro support traits
moving things to blackbox and whitebox support