errors should be instances of Error

should functions include their name in the error message? or should that be covered by the stack trace?