code reformatting
added different class for promise
refactored entirely: no more always callback and promise splitted in a different class
updated docs for new style of promises