restructure a but