added tag feature and ability to add/update tags