for clarity and consistent exception handling