Avoids stack overflows! and GUI code separation