switch by `type`, not info.type