added custom error type