I can't remember why HapticLength and HapticMode are needed, I would see only Haptic here, no?