Adding some comments
Adding classes for exceptions
Raising exceptions [need tests ):]