Complete refactoring of the code base
Added regex recognition for urls
Added use of custom exceptions
Created custom exceptions