spliting up gui and methods