+ add refresh logic