async only, I know the file writes need to be async as well, but better than doing everything in ram