win: category change refactoring

moved some logic from view to view model
core: INPC optimized caching