refining func