diff --git a/helios b/helios
index d7ed95619a63e1e5745f43427e9dbc0f8df0d028..ef0ee6f5e0fa2307f87998065fd0ff2aa6e29d07 160000
--- a/helios
+++ b/helios
@@ -1 +1 @@
-Subproject commit d7ed95619a63e1e5745f43427e9dbc0f8df0d028
+Subproject commit ef0ee6f5e0fa2307f87998065fd0ff2aa6e29d07
diff --git a/iacr/urls.py b/iacr/urls.py
index b4350418f2fddddd1b6d647a5051c0ae0b44cfe7..a4c2eaafdda9b35162494dfac9615c437d510d3e 100644
--- a/iacr/urls.py
+++ b/iacr/urls.py
@@ -5,5 +5,6 @@ from views import *
 
 urlpatterns = patterns('',
   (r'^$', home),
-  (r'^about$', about)
+  (r'^about$', about),
+  (r'^cast$', cast)
 )
diff --git a/iacr/views.py b/iacr/views.py
index 7539a5eb4b6429ecae233ff9074f9ed51db90410..84eb39a8b539fb8bd53b19256e92fb7b07f5c892 100644
--- a/iacr/views.py
+++ b/iacr/views.py
@@ -7,24 +7,40 @@ from auth.security import *
 from view_utils import *
 
 import helios.views
+import helios
 
 from django.core.urlresolvers import reverse
 from django.http import HttpResponse, HttpResponseRedirect, Http404, HttpResponseNotAllowed
 
 def home(request):
-  user = get_user(request)
-  if user:
-    elections = Election.get_by_user_as_admin(user)
-    elections_registered = Election.get_by_user_as_voter(user)
-  else:
-    elections = []
-    elections_registered = []
-    
-  return render_template(request, "index", {'elections' : elections, 'elections_registered' : elections_registered})
+  # create the election if need be
+  election_params = {
+    'short_name' : 'iacr09',
+    'name' : 'IACR 2009 Election',
+    'description' : 'Election for the IACR Board - 2009',
+    'uuid' : 'iacr',
+    'cast_url' : reverse(cast),
+    'self_registration' : False,
+    'openreg': False,
+    'admin' : helios.ADMIN
+  }
+  
+  election = Election.get_by_key_name(election_params['short_name'])
+  if not election:
+    election = Election(key_name = election_params['short_name'], **election_params)
+    election.put()
+  
+  return render_template(request, "index")
   
 def about(request):
   return HttpResponse(request, "about")
     
-def election_shortcut(request, election_short_name):
-  election = Election.get_by_short_name(election_short_name)
-  return HttpResponseRedirect(reverse(helios.views.one_election_view, args=[election.uuid]))
\ No newline at end of file
+@helios.views.election_view(frozen=True)
+def cast(request, election):
+  if request.method == "GET":
+    encrypted_vote = request.POST['encrypted_vote']
+    request.session['encrypted_vote'] = encrypted_vote
+    return render_template(request, "cast", {'election': election})
+  else:
+    # do the casting
+    pass
diff --git a/settings.py b/settings.py
index ba6cbffc39a3a0bfc6eabe4514689b0be2a1eda0..795e7940cabd465a65ed88ab5e3f1141a2944384 100644
--- a/settings.py
+++ b/settings.py
@@ -127,4 +127,4 @@ TEMPLATE_DEBUG = True
 
 URL_HOST = "https://iacr-helios.appspot.com"
 
-IACR_ELECTION_UUID = '2d52d7fd-7d94-11de-b131-ed929ff4d68f'
\ No newline at end of file
+IACR_ELECTION_UUID = 'iacr'
\ No newline at end of file