Finally managed to return the extracted values

Thanks for your help, @peterflynn, your single statement about async
code being "viral" really helped. :)

Oh yea, and lots of obligatory cleanup.