heartbeat and separating out tasks into channels/goroutines (incomplete)