improved error classes