working concurrency but still need to figure out exception handling