add category repository
add abstract category decorator class
add category cache decorator
refactor repo service provider: category caching