Built most of the GUI features and set up the IO writing