adding new error type and implementations