public function intersect(Period $period)
	    {
	        if (! $this->overlaps($period)) {
	            throw new LogicException('Both Period objects should overlaps');
	        }

	        $start = $this->start;

	        if ($period->start > $start) {
	            $start = $period->start;
	        }

	        $end = $this->end;
	        
	        if ($period->end < $end) {
	            $end = $period->end;
	        }

	        return new self($start, $end);
	    }