Rewritten the whole LinkedList class, added custom exceptions.