restructure of util - not much changed