public boolean equals(Object object) {
        if (object == this) {
            return true;
        }
        if (!(object instanceof Task)) {
            return false;
        }
        Task that = (Task) object;
        if (!ObjectUtilities.equal(this.description, that.description)) {
            return false;
        }
        if (!ObjectUtilities.equal(this.duration, that.duration)) {
            return false;
        }
        if (!ObjectUtilities.equal(this.percentComplete, 
                that.percentComplete)) {
            return false;
        }
        if (!ObjectUtilities.equal(this.subtasks, that.subtasks)) {
            return false;
        }
        return true;