@Override
    public boolean equals (Object target) {
        if(target instanceof TaskList) {
            TaskList taskList = (TaskList) target;
            if(target.getClass() != this.getClass() ||
               this.hashCode() != taskList.hashCode())
                    return false;
            else {
                Iterator<Task> iterator = taskList.iterator();
                for(Task task : this) {
                    if(iterator.hasNext() && 
                       !task.equals( iterator.next() )) {
                            return false;
                        }
                }
            }
            return true;
        }
        else 
            return false;
    }