refactoried CateUtil