tags and upload and autocomplete func(half done)