added Read(data []byte)