Refactored refresh to be asynchronous