add recursive option to unbox()