added primitive watch unwatch functionality