refine algo