moved from si_utils package.