* [category] add some natural transformations and abstraction