GUI: move listener, move resultpanel, mainpanel single responsibility