basic design and pull to refresh