Merge branch 'tag-refactor', closes #24, closes #29, closes #31