object oriented -> use of custom exceptions