upgraded code to use shapeless-2.0.0