def factory_register(SuperClass, ClassName):
    """Register an concrete class to a factory Class."""
    def decorator(Class):
        # return Class
        if not hasattr(SuperClass, "_factory"):
            setattr(SuperClass, "_factory", {})
        SuperClass._factory[ClassName] = Class
        setattr(Class, "_factory_type", ClassName)
        return Class
    return decorator