add on_read to TcpClient