code: func (p *Profile) Find(target interface{}) interface{} {
  	switch target.(type) {
  	case *Service:
  	case *Characteristic:
  	case *Descriptor:
  	default:
  		return nil
  	}
  	for _, s := range p.Services {
  		ts, ok := target.(*Service)
  		if ok && s.UUID.Equal(ts.UUID) {
  			target = s
  			return s
  		}
  		for _, c := range s.Characteristics {
  			tc, ok := target.(*Characteristic)
  			if ok && c.UUID.Equal(tc.UUID) {
  				return c
  			}
  			for _, d := range c.Descriptors {
  				td, ok := target.(*Descriptor)
  				if ok && d.UUID.Equal(td.UUID) {
  					return d
  				}
  			}
  		}
  	}
  	return nil
  }
docs: // Find searches discovered profile for the specified target's type and UUID.
  // The target must has the type of *Service, *Characteristic, or *Descriptor.