https://123dok.co/document/zwvo4dl1-a-guide-to-debouncing.html