diff --git a/ippisite/ippidb/models.py b/ippisite/ippidb/models.py
index 326dcfbbbcbfb9d7ff3a97a8dd36dfe8917d25db..b02bf2f254560d255c9aa5e7c09f7138b35dabf6 100644
--- a/ippisite/ippidb/models.py
+++ b/ippisite/ippidb/models.py
@@ -75,9 +75,18 @@ class Protein(models.Model):
     molecular_functions = models.ManyToManyField(MolecularFunction)
 
     def save(self, *args, **kwargs):
-        info = get_epo_info(self.id_source)
+        info = get_uniprot_info(self.uniprot_id)
         self.recommended_name_long = info['recommended_name']
-        self.organism = info['organism']
+        self.gene_name = info['gene']
+        self.entry_name = info['entry_name']
+        try:
+            taxonomy = Taxonomy.objects.get(taxonomy_id=info['organism'])
+        except Taxonomy.DoesNotExist:
+            tax_info = get_taxonomy_info(info['organism'])
+            taxonomy = Taxonomy()
+            taxonomy.taxonomy_id = info['organism']
+            taxonomy.save()
+        self.organism = taxonomy
         super(Protein, self).save(*args, **kwargs)
 
 class Domain(models.Model):