add multi-category support