Adds control flow spec WITH a do block
Make specs better document the file provider contract
remove tmp directory
updates gitignore to include tmp