Small nit-pick: 'raise' instead of 'fail' reads better here