code: func (sbself *splitBufferedWriter) Write(data []byte) (int, error) {
  	toCopy := len(sbself.userBuffer) - sbself.userBufferCount
  	if toCopy > len(data) {
  		toCopy = len(data)
  	}
  	copy(sbself.userBuffer[sbself.userBufferCount:sbself.userBufferCount+toCopy], data[:toCopy])
  	sbself.userBufferCount += toCopy
  	if toCopy < len(data) { // we need to overflow to remainder
  		count, err := sbself.remainder.Write(data[toCopy:])
  		return count + toCopy, err
  	}
  	return toCopy, nil
  }
docs: // writes, preferably to the userBuffer but then optionally to the remainder