WIP: generalize categorical to N-dimensions

is is more used like a `_constructor(...)`.