#1 - More validation and exception handling to ensure client have to
catch exception and handle it