rect restruct