refine some methods