add exception catches