@Override
    public boolean equals(Object obj) {
        if (this == obj) return true;
        if (obj == null || getClass() != obj.getClass()) return false;

        Variable variable = (Variable) obj;
        if (name == null && variable.getName() == null) {
            return true;
        }

        return name.equals(variable.getName());
    }