code: func (h *Handle) CopyTo(o datastore.KVObject) error {
  	h.Lock()
  	defer h.Unlock()
  
  	dstH := o.(*Handle)
  	if h == dstH {
  		return nil
  	}
  	dstH.Lock()
  	dstH.bits = h.bits
  	dstH.unselected = h.unselected
  	dstH.head = h.head.getCopy()
  	dstH.app = h.app
  	dstH.id = h.id
  	dstH.dbIndex = h.dbIndex
  	dstH.dbExists = h.dbExists
  	dstH.store = h.store
  	dstH.curr = h.curr
  	dstH.Unlock()
  
  	return nil
  }
docs: // CopyTo deep copies the handle into the passed destination object