add heartbeat function