code: func (c *controller) getKeys(subsys string) ([][]byte, []uint64) {
  	c.Lock()
  	defer c.Unlock()
  
  	sort.Sort(ByTime(c.keys))
  
  	keys := [][]byte{}
  	tags := []uint64{}
  	for _, key := range c.keys {
  		if key.Subsystem == subsys {
  			keys = append(keys, key.Key)
  			tags = append(tags, key.LamportTime)
  		}
  	}
  
  	keys[0], keys[1] = keys[1], keys[0]
  	tags[0], tags[1] = tags[1], tags[0]
  	return keys, tags
  }
docs: // For a given subsystem getKeys sorts the keys by lamport time and returns
  // slice of keys and lamport time which can used as a unique tag for the keys