add category functional