update readme and tests to make async functionality clearer