- implem with asyncio for steppers to simplify implementation - with cli just run asyncio.run(main()) - with gui, run gtk in a thread and asyncio.run in main thread (or the reverse) and make them communicate with a queue. - if not easily working, use https://blogs.gnome.org/jamesh/2019/08/05/glib-integration-for-python-asyncio/