Feature/gui

I think this code is ready to rumble. VIewlogic will be implemented in another branch of life.