code: func (r *Update) binaryGet(serializedData []byte) error {
  	if len(serializedData) < minimumUpdateDataLength {
  		return NewErrorf(ErrNothingToReturn, "chunk less than %d bytes cannot be a feed update chunk", minimumUpdateDataLength)
  	}
  	dataLength := len(serializedData) - idLength - headerLength
  	// at this point we can be satisfied that we have the correct data length to read
  
  	var cursor int
  
  	// deserialize Header
  	r.Header.Version = serializedData[cursor]                                      // extract the protocol version
  	copy(r.Header.Padding[:headerLength-1], serializedData[cursor+1:headerLength]) // extract the padding
  	cursor += headerLength
  
  	if err := r.ID.binaryGet(serializedData[cursor : cursor+idLength]); err != nil {
  		return err
  	}
  	cursor += idLength
  
  	data := serializedData[cursor : cursor+dataLength]
  	cursor += dataLength
  
  	// now that all checks have passed, copy data into structure
  	r.data = make([]byte, dataLength)
  	copy(r.data, data)
  
  	return nil
  
  }
docs: // binaryGet populates this instance from the information contained in the passed byte slice