tokeninput and typeahead input made a bit more agnostic