sustain added and wierd debouncing