track(component, nested = true) {
    let isHovered = false;

    this.on('move', () => {
      if (this.hovers(component, nested)) {
        if (isHovered) component.emit('mousemove');
        else {
          component.emit('mouseover');
          isHovered = true;
        }
      } else if (isHovered) {
        component.emit('mouseout');
        isHovered = false;
      }
    });

    this.on('click', () => {
      if (isHovered) component.emit('click');
      else component.emit('offClick');
    });

    this.on('mousedown', () => {
      if (isHovered) component.emit('mousedown');
    });

    this.on('mouseup', () => {
      if (isHovered) component.emit('mouseup');
    });
  }
@method track
@description Starts tracking events on a component
@param {Component} component A component, that should be tracked by the mouse
@param {Boolean} nested Whether component's children should be tracked or not
@memberof module:modules/app.VirtualMouseModule