add refresh fn