callback and error handling added = like in async.js / Exceptions are stil allowed and return instead of callback