changed to packed Object.observe model