A lot of work on GUI

I have fixed some stuff and added some more new stuff. All in all the GUI code is quickly closing the feature gap with command line.
We need this public so the GUI code can get it.