add watch/unwatch methods (experimental)
invoke -> dispatch