each task should be able to specify a command to revert it's action on error. obviously the revert could fail too, but ... hmmm.