Buttons are now debounced and code is more DRY. Everything now works perfectly.