initial implementation of TagInput