improved exception class to contain more information on what went wrong