use __ipairs for object destructuring