add watch/unwatch API