final restruct