improve smartinput