move decorators into separate folder in lib
implement promise.fold
add tests and documentation