some restruct