30004 refactor category

@prabinv was easier to delete the remote branch and push the rebased local version. This pr is the same one as before with @tsanko's changes rebased .