single-threaded programs