Suggested modifications

Added working debounce code, changed debounce duration to be intialized (with default value) in the constructor.  Moved the current state boolean from being a public field member to a private member with an accessor.