separated util into header and implementation files.