@classmethod
def from_serializable(cls, object_dict, register_flag=False):
    """ corelibrary class method to create visible objects from a dictionary """
    old_key_class = 'ObjectType'
    old_key_module = 'ObjectClass'
    old_key_name = 'ObjectName'
    key_class = cls._from_visible(cls.STARTS_WITH + 'class' + cls.ENDS_WITH)
    key_module = cls._from_visible(cls.STARTS_WITH + 'module' + cls.ENDS_WITH)
    key_name = cls._from_visible(cls.STARTS_WITH + 'name' + cls.ENDS_WITH)
    old_class = object_dict.pop(old_key_class
        ) if old_key_class in object_dict else 'VisibleObject'
    old_module = 'corelibrary.' + object_dict.pop(old_key_module
        ) if old_key_module in object_dict else 'corelibrary'
    old_name = object_dict.pop(old_key_name
        ) if old_key_name in object_dict else ''
    obj_class = object_dict.pop(key_class
        ) if key_class in object_dict else old_class
    obj_module = 'corelibrary.' + object_dict.pop(key_module
        ) if key_module in object_dict else old_module
    obj_name = object_dict.pop(key_name
        ) if key_name in object_dict else old_name
    if register_flag and obj_name in cls.keys():
        old_obj = cls(obj_name)
        if not old_obj.__class__.__name__ == obj_class:
            old_obj.remove()
    obj = cls._from_class(obj_class, 'corelibrary', obj_name)
    if register_flag:
        obj.register()
    for key, value in {'DetailList': [[]]}.items():
        if key in object_dict and object_dict[key] == value:
            object_dict.pop(key)
    obj.modify_object(object_dict)
    obj.update_link()
    return obj
