public Quantity div (Quantity target)
  {
    Quantity result = new Quantity();
    
      if( target == null)
    {  throw new IllegalArgumentException(); }
    
    result.value = this.value / target.value;
    
    if(this.unit.isEmpty())
    {
      result.unit.putAll(target.unit);
      return result;
    }
    
    else if(target.unit.isEmpty())
    {
      result.unit.putAll(this.unit);
      return result;
    }
    
    else
    {
      for(String targetKeyString : target.unit.keySet())
      {
        for(String thisKeyString : this.unit.keySet())
        {
          // if this has the unit, just simply increment it. 
          if(this.unit.containsKey(targetKeyString))
            result.unit.put(targetKeyString, this.unit.get(targetKeyString) - target.unit.get(targetKeyString));
          
          else
          {
            result.unit.put(thisKeyString, this.unit.get(thisKeyString));
            result.unit.put(targetKeyString, target.unit.get(targetKeyString));
          }
        }
      }
    }
    
    return result;
  }