use public util for backport