@Override
    public boolean equals(Object obj) {
        if (obj == this) {
            return true;
        }
        if (obj instanceof Cell) {
            Cell<?> other = (Cell<?>) obj;
            return getRow() == other.getRow() && getColumn() == other.getColumn()
                    && Objects.equal(getValue(), other.getValue());
        }
        return false;
    }