code: func Domain(url string) string {
  	domain, top := stripURLParts(url), ""
  	parts := strings.Split(domain, ".")
  	currentTld := *tlds
  	foundTld := false
  
  	// Cycle trough parts in reverse
  	if len(parts) > 1 {
  		for i := len(parts) - 1; i >= 0; i-- {
  			// Generate top domain output
  			if top != "" {
  				top = "." + top
  			}
  			top = parts[i] + top
  
  			// Check for TLD
  			if currentTld == nil {
  				return top // Return current output because we no longer have the TLD
  			} else if tldEntry, found := currentTld[parts[i]]; found {
  				if tldEntry != nil {
  					currentTld = *tldEntry
  				} else {
  					currentTld = nil
  				}
  				foundTld = true
  				continue
  			} else if foundTld {
  				return top // Return current output if tld was found before
  			}
  
  			// Return empty string if no tld was found ever
  			return ""
  		}
  	}
  
  	return ""
  }
docs: // Domain returns top level domain from url string.
  // If no domain is found in provided url, this function returns empty string.
  // If no TLD is found in provided url, this function returns empty string.