use heartbeats instead of long timeouts to deal with latency