some restruct
some restruct