add watch function