remove object.observe and replace with traditional custom watched