various fixes. add support for adding tags if none exist