added custom error codes