improve error catch, allow run without callback at end.