add error code check