added custom exception handling