merge gui restructure with master