watch functions now use deref to make sure the latest state is displayed