diff --git a/ippisite/db.sqlite3.REMOVED.git-id b/ippisite/db.sqlite3.REMOVED.git-id
index cb9c5e1693a3710e494a1ba429eeae1858babf29..4c4552c4b6a453572a78b14f8d5aff3c2a84ac4f 100644
--- a/ippisite/db.sqlite3.REMOVED.git-id
+++ b/ippisite/db.sqlite3.REMOVED.git-id
@@ -1 +1 @@
-067f156ca37c93920f1a15dac26337a9956fccbb
\ No newline at end of file
+ea2455328a1ef5effe52858804d0c303950ec7cf
\ No newline at end of file
diff --git a/ippisite/ippidb/views.py b/ippisite/ippidb/views.py
index 2eb60345585d3a281ddfa45f9ce9537596e63893..24d43b9afced0a22fb48160f6af86b1b1b3a0f06 100644
--- a/ippisite/ippidb/views.py
+++ b/ippisite/ippidb/views.py
@@ -2,10 +2,11 @@ import ippidb
 
 from django.shortcuts import render
 from django.http import HttpResponseRedirect
+from django.forms.models import model_to_dict
 from formtools.wizard.views import SessionWizardView,NamedUrlSessionWizardView
 
 from .forms import IdForm, BibliographyForm, PDBForm, ProteinForm, ProteinDomainComplexTypeForm, ProteinDomainComplexForm, PpiForm, ProteinFormSet
-from .models import Protein
+from .models import Protein, Bibliography, Taxonomy
 from .ws import get_pdb_uniprot_mapping
 
 def index(request):
@@ -46,6 +47,19 @@ class IppiWizard(NamedUrlSessionWizardView):
     def get_template_names(self):
         return [TEMPLATES[self.steps.current]]
 
+    def get_form_instance(self, step):
+        if self.steps.current=='BibliographyForm':
+            data = self.storage.get_step_data('IdForm')
+            obj = Bibliography(**data)
+            return obj
+        if self.steps.current=='ProteinForm':
+            data = self.storage.get_step_data('PDBForm').getlist('set')
+            proteins = []
+            for data_item in data:
+                data_item['organism'] = Taxonomy.objects.get(pk=data_item['organism'])
+                proteins.append(Protein(**data_item))
+            return Ol(proteins)
+
     def process_step(self, form):
         """
         This method overrides the one used to postprocess the form data.
@@ -54,8 +68,8 @@ class IppiWizard(NamedUrlSessionWizardView):
         """
         if self.steps.current=='IdForm':
             form.instance.autofill()
-            self.instance_dict['BibliographyForm'] = form.instance
-        elif self.steps.current=='PDBForm':
+            return model_to_dict(form.instance)
+        if self.steps.current=='PDBForm':
             uniprot_ids = get_pdb_uniprot_mapping(form.cleaned_data['pdb_id'])
             proteins = []
             for uniprot_id in uniprot_ids:
@@ -66,7 +80,7 @@ class IppiWizard(NamedUrlSessionWizardView):
                     p.uniprot_id = uniprot_ids[0]
                     p.autofill()
                 proteins.append(p)
-            self.instance_dict['ProteinForm'] = Ol(proteins)
+            return {'set': [model_to_dict(p, exclude=['molecular_functions']) for p in proteins]}
         return self.get_form_step_data(form)
 
     def done(self, form_list, **kwargs):