initial gui stuff (a lot of horrible code i'm playing around with before cleaning up)