add refresh control
add reachability check