Gui implementation (work in progress)