Track the message time properly
Change the Done channel to struct{}
Use mutex instead of RWMutex in language