no hard-coding of error names