add category
refact inherit to compose it