error() can now accept a caller and adds it's type to the message