Fixed jdk1.6 issue and added multiplcation the long way
Rewrote the driver code to be more robust and handle exceptions easily
Code refactoring and fixed square multiplication