refine interfaces