refactor taggable module