perhaps place all messages in a separate object, `TcpMessages`