Major update to code layout and GUI