added better exception errors