public function setTimeSpan($timeSpan)
    {
        if (is_string($timeSpan)) {
            $timeSpan = self::parseTime($timeSpan);
        }
        if (!is_numeric($timeSpan)) {
            throw new InvalidArgumentException('timespan is not numeric');
        }
        $timeSpan = floatval($timeSpan);
        if ($timeSpan <= 0) {
            throw new InvalidArgumentException('timespan cannot be 0 or less');
        }
        $this->timeSpan = $timeSpan;
    }