task persistence and error recovery implemented