localize utilities; use dispatch table