public function add($unit, $value = 1, $overflow = null)
    {
        if (is_string($unit) && func_num_args() === 1) {
            $unit = CarbonInterval::make($unit);
        }

        if ($unit instanceof DateInterval) {
            return parent::add($unit);
        }

        if (is_numeric($unit)) {
            $tempUnit = $value;
            $value = $unit;
            $unit = $tempUnit;
        }

        return $this->addUnit($unit, $value, $overflow);
    }