restruct protocol