implented gui