refactored Haptics.vibrate