diff --git a/typedflow/nodes/base.py b/typedflow/nodes/base.py
index ece0895..b9853f9 100644
--- a/typedflow/nodes/base.py
+++ b/typedflow/nodes/base.py
@@ -113,7 +113,8 @@ class ConsumerNode:
         None
         """
         assert len(self.precs) == 0, 'Some arguments have been already set'
-        self.precs: Dict[str, ProviderNode] = args
+        for name, prec in args.items():
+            self.set_upstream_node(name, prec)
         return self
 
 

The new syntax doesn't work
It doesn't accept args in the correct way. For instance, life of cache tables are never incremented.
diff --git a/typedflow/tests/flow/test_flow.py b/typedflow/tests/flow/test_flow.py
index aa31917..7682475 100644
--- a/typedflow/tests/flow/test_flow.py
+++ b/typedflow/tests/flow/test_flow.py
@@ -209,3 +209,4 @@ def test_declare_inputs_when_definition_with_multiple_args():
     node_dump = DumpNode(dump)({'a': node_task})
     flow = Flow([node_dump, ])
     flow.typecheck()
+    assert node_task.cache_table.life == 1

pip install -e .
parse_log_pytest
requirements.txt
pytest pytest-runner autoflake bump2version flake8 mypy pip python-language-server[pyls-mypy]
apt-get update apt-get install -y gcc build-essential libomp-dev libopenblas-dev
3.8
requirements.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
autoflake==2.3.1
bump2version==1.0.1
dataclasses-json==0.6.7
exceptiongroup==1.2.2
flake8==7.1.2
iniconfig==2.1.0
jedi==0.17.2
marshmallow==3.22.0
mccabe==0.7.0
mypy==1.14.1
mypy-extensions==1.0.0
packaging==24.2
parso==0.7.1
pluggy==1.5.0
pycodestyle==2.12.1
pyflakes==3.2.0
pytest==8.3.5
pytest-runner==6.0.1
python-jsonrpc-server==0.4.0
python-language-server==0.36.2
tomli==2.2.1
-e git+https://github.com/tarohi24/typedflow.git@2127e74314d2b97d596cfc12ed8fb257bb688d6f#egg=typedflow
typing-inspect==0.9.0
typing_extensions==4.13.0
ujson==5.10.0

name: typedflow
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.16=h5eee18b_0
  - pip=24.2=py38h06a4308_0
  - python=3.8.20=he870216_0
  - readline=8.2=h5eee18b_0
  - setuptools=75.1.0=py38h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.44.0=py38h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - autoflake==2.3.1
      - bump2version==1.0.1
      - dataclasses-json==0.6.7
      - exceptiongroup==1.2.2
      - flake8==7.1.2
      - iniconfig==2.1.0
      - jedi==0.17.2
      - marshmallow==3.22.0
      - mccabe==0.7.0
      - mypy==1.14.1
      - mypy-extensions==1.0.0
      - packaging==24.2
      - parso==0.7.1
      - pluggy==1.5.0
      - pycodestyle==2.12.1
      - pyflakes==3.2.0
      - pytest==8.3.5
      - pytest-runner==6.0.1
      - python-jsonrpc-server==0.4.0
      - python-language-server==0.36.2
      - tomli==2.2.1
      - typing-extensions==4.13.0
      - typing-inspect==0.9.0
      - ujson==5.10.0
prefix: /opt/conda/envs/typedflow

typedflow/tests/flow/test_flow.py::test_declare_inputs_when_definition_with_multiple_args
typedflow/tests/flow/test_flow.py::test_flow_run typedflow/tests/flow/test_flow.py::test_typecheck_success typedflow/tests/flow/test_flow.py::test_typecheck_failure typedflow/tests/flow/test_flow.py::test_incoming_multiple_node typedflow/tests/flow/test_flow.py::test_arg_inheritance typedflow/tests/flow/test_flow.py::test_declare_inputs_when_definition
typedflow/nodes/base.py
typedflow/nodes/base.py