use subscribe since watch conflicts with Object.prototype.watch