Sam

Does not add promise support. that should be a different PR