WIP move to pseudofunctors