added refresh callback