 }
 
 public extension EUtils {
-    private static func summaryURL(gi: String, database: String) -> URL
-    {
-        return URL(
-            function: "esummary",
-            params  : [
-                "db"        : database,
-                "retmode"   : "json",
-                "id"        : gi,
-            ]
-        )
-    }
-    public static func summary(accession: String) throws -> [String:AnyObject]
+    static func summary(accession: String) throws -> [String:AnyObject]
     {
         let gilist = search(accession, database: "nuccore")
         guard gilist.count > 0 else { return [:] }

    }
}

public extension EUtils {
    private static func searchURL(term: String, database: String) -> URL
    {
        return URL(
            function: "esearch",

            ]
        )
    }
    static func summaryURL(gi: String, database: String) -> URL
    {
        return URL(
            function: "esummary",
            params  : [
                "db"        : database,
                "retmode"   : "json",
                "id"        : gi,
            ]
        )
    }
    static func fetchURL(gi: String, database: String) -> URL
    {
        return URL(
            function: "efetch",
            params  : [
                "db"        : database,
                "retmode"   : "text",
                "rettype"   : "fasta",
                "id"        : gi,
            ]
        )
    }
}

private extension EUtils {
    static func search(term: String, database: String) -> [String]
    {
        let url = searchURL(term, database: database).url
        guard
