Initial work

Also as discussed on IRC, does it really make sense to expose this as all the methods are async.