base Error class init takes a string to be printed, other subclasses that inhered do not need to init to call print
implemented other user-defined exceptions, put string back in first exception
extraneous white space
unit test almost all of the base agent class, no __hash__, __repr__, or __str__ dunder methods