refactored - tested AsyncRequest