refine some method