gui
tons of code for gui