Added some more gui code.
Pretty much everything past this point requires figuring out how the
backend is going to work