Get async cover

needs some more work but:
- implements getCoverAsync
- adds tests for async function call
- returns null object if parameters are invalid