it's a separate buffer for each message