add pull refresh and test cache