Add debounce
Refactor using factories