GUI refactoring/implementaiton