updated vibrate logic