support categories

currently semi-hardcoded; should be built on a registry type structure.