gui, input, output are done