refresh button logic & UI updates