GUI refactor