refine API