very rough GUI outline.  No callback work done