added categorical and tests