diff --git a/ippisite/ippidb/ws.py b/ippisite/ippidb/ws.py
index 422a5219ab38cde7844249ba0962e58ca891e3f2..de60b85751eb7b668a0922a652133a8c49be5df1 100644
--- a/ippisite/ippidb/ws.py
+++ b/ippisite/ippidb/ws.py
@@ -36,10 +36,18 @@ def get_epo_info(patent_number):
             'authors_list': authors}
 
 def get_uniprot_info(uniprot_id):
-    uniprot_client = Uniprot()
+    uniprot_client = UniProt()
     resp = uniprot_client.retrieve(uniprot_id)
-    recommended_name = res.root.findall('{http://uniprot.org/uniprot}entry/{http://uniprot.org/uniprot}protein/{http://uniprot.org/uniprot}recommendedName/{http://uniprot.org/uniprot}fullName')[0].text
-    organism = res.root.findall('{http://uniprot.org/uniprot}entry/{http://uniprot.org/uniprot}organism/{http://uniprot.org/uniprot}dbReference[@type="NCBI Taxonomy"]/@id')
+    recommended_name = resp.root.findall('{http://uniprot.org/uniprot}entry/{http://uniprot.org/uniprot}protein/{http://uniprot.org/uniprot}recommendedName/{http://uniprot.org/uniprot}fullName')[0].text
+    organism = resp.root.findall('{http://uniprot.org/uniprot}entry/{http://uniprot.org/uniprot}organism/{http://uniprot.org/uniprot}dbReference[@type="NCBI Taxonomy"]')[0].attrib['id']
+    gene = resp.root.findall('{http://uniprot.org/uniprot}entry/{http://uniprot.org/uniprot}gene/{http://uniprot.org/uniprot}name[@type="primary"]')[0].text
     return {'recommended_name': recommended_name,
-            'organism': organism
-           } 
+            'organism': int(organism),
+            'gene': gene
+           }
+
+def get_taxonomy_info(taxonomy_id):
+    eu = EUtils()
+    r = eu.EFetch('taxonomy', taxonomy_id, retmode='dict')
+    scientific_name = r['TaxaSet']['Taxon']['ScientificName']
+    return {'scientific_name': scientific_name}