cleanup mainloop code