split into GUI/NON-GUI