code: func (l *Driver) Start() (err error) {
  	enableGestures := map[string]bool{"enableGestures": true}
  	b, e := json.Marshal(enableGestures)
  	if e != nil {
  		return e
  	}
  	_, e = l.adaptor().ws.Write(b)
  	if e != nil {
  		return e
  	}
  
  	go func() {
  		var msg []byte
  		var frame Frame
  		for {
  			l.receive(l.adaptor().ws, &msg)
  			frame = l.ParseFrame(msg)
  			l.Publish(MessageEvent, frame)
  
  			for _, hand := range frame.Hands {
  				l.Publish(HandEvent, hand)
  			}
  
  			for _, gesture := range frame.Gestures {
  				l.Publish(GestureEvent, gesture)
  			}
  		}
  	}()
  
  	return
  }
docs: // Start inits leap motion driver by enabling gestures
  // and listening from incoming messages.
  //
  // Publishes the following events:
  //		"message" - Emits Frame on new message received from Leap.
  //		"hand" - Emits Hand when detected in message from Leap.
  //		"gesture" - Emits Gesture when detected in message from Leap.