new exception, fixed class logic