using 20ms for debouncing to avoid bounced callbacks