implement better approach for reporting, displaying errors; catch and report unexpected exceptions