revise context and add shapeless examples.