diff --git a/lazy_player/reactive.py b/lazy_player/reactive.py
index a9ea19c..b8c957f 100644
--- a/lazy_player/reactive.py
+++ b/lazy_player/reactive.py
@@ -3,6 +3,7 @@ from __future__ import annotations
 import sys
 import traceback
 from contextvars import ContextVar
+from functools import wraps
 from typing import Any, Callable, ClassVar, Generic, Self, TypeVar
 from weakref import WeakSet
 
@@ -90,6 +91,7 @@ class Watcher:
         if not hasattr(self, "_watches"):
             self._watches = set()
 
+        @wraps(handler)
         def run_handler():
             handler()