first cut of a version that takes a url input
file read is also async now.