code: func (cp *CPUManagerCheckpoint) MarshalCheckpoint() ([]byte, error) {
  	// make sure checksum wasn't set before so it doesn't affect output checksum
  	cp.Checksum = 0
  	cp.Checksum = checksum.New(cp)
  	return json.Marshal(*cp)
  }
docs: // MarshalCheckpoint returns marshalled checkpoint