I've been toying with this idea, and I'm having some difficulty implementing it as well as I'd like. Seeking the input of others. I'd like to be able to separate my app's "guts" from its UI to a large extent, so that I could allow different UIs (such as Fox and "plain old text"). So the app looks basically like this: session.get_some_parameters session.do_stuff session.wrap_up Those aren't the real names, but you get the idea. Very natural in terms of old-fashioned gets and puts calls. And of course, there is a little more complexity behind the general flow of control. So I thought, OK, my code just calls a bunch of methods... the UI details are hidden. But, of course, a GUI has that inside-out logic flow. So I can't figure out how properly to divide the code up -- I can certainly throw up a dialog for get_some_parameters. But I can't "fall through" to the do_stuff call. When I press the Start button or whatever, the mainloop has to be running. So I end up calling do_stuff from *within* get_some_parameters... which means I can't call it *after* the do_stuff call. I suppose I could just make a "run" method for each class/UI... that seems best right now. But then what have I really bought for myself? What are others' opinions on this matter? Hal -- Hal Fulton hal9000 / hypermetrics.com