refine refresh button behavior