Add asynchronous file creation, modularize runner code