def handle_url(self, new_url, requested_url):
        if not isinstance(new_url, Url):
            new_url = Url(new_url)
        if requested_url is not None:
            if not isinstance(requested_url, Url):
                requested_url = Url(requested_url)
            new_url.abstract_url = self.calculate_abstract_url(new_url, requested_url)

        if not self.database_manager.url_exists(new_url):
            new_url.url_structure = self.calculate_url_structure(new_url)
        return new_url