non-threaded done