first pass at gui