using watch instead of broadcast