add shapeless spec