update to async requests
add tests