making the GUI self-contained