support backspace and tab