smartinput