def METHOD_NAME(function):
    function.name = name
    function.units = units
    function.limits = limits
    function.subscripts = subscripts
    function.type = comp_type
    function.subtype = comp_subtype
    function.args = inspect.getfullargspec(function)[0]
    # include component in namespace and dependencies
    self.namespace[name] = function.__name__
    if function.__name__ != "time":
        self.dependencies[function.__name__] = depends_on
        self.dependencies.update(other_deps)
    return function