implement basic GUI