add button, debounce, stateChangeDetection JS