def create_tags_from_dict(cls, tag_dict):
        """ 
            Build a tuple of list of Tag objects based on the tag_dict.
            The tuple contains 3 lists.
            - The first list contains skill tags
            - The second list contains misconception tags
            - The third list contains category tags
         """
        tag_list_common = []
        tag_list_misconception = []
        tag_list_organisational = []
        for tag in tag_dict:
            try:
                id = tag_dict[tag]["id"]
                name = tag_dict[tag]["name"]
                visible = tag_dict[tag]["visible"]
                description = tag_dict[tag]["description"]
                type = tag_dict[tag]["type"]
                
                if type == 2:
                    tag_list_organisational.insert(int(tag), Tag(id, name, description, visible, type))
                elif type == 1:
                    tag_list_misconception.insert(int(tag), Tag(id, name, description, visible, type))
                else:
                    tag_list_common.insert(int(tag), Tag(id, name, description, visible, type))
            except KeyError:
                pass
        return tag_list_common, tag_list_misconception, tag_list_organisational