Massive rewrite for gui #2. It is run by directly running gui2.py