Adding unfinished GUI version. Still needs work. Lots of work.