Should this take the URL in the constructor so we can generate a more useful __str__ impl?