change the layout and the struct