on error throw custom error from the package to help identify that the error comes from the package
on error throw custom error from the package to help identify that the error comes from the package