added option to run async either async with errors in callbacks or sync where errors are ignored