[FEATURE] use custom Error classes for various error types