added delay(), defer(), and debounce() function methods