refine user interaction