make gestures all exist for consistency, always use lastConnectionFrame, not lastFrame (lastFrame can only refer to a completely finished frame)