use Object.observe