restruct for server push