Revert "Revert "fixed assign structure""

This reverts commit e42004418d54e7a259a862079ffba06eaf776bc2.