improved exception handling...