Two things:

* Reorganize source + cosmetics
* Add an async_* which take a completion handler as argument