add tag parsing and logic (see branch taggenerator)