diff --git a/README.rst b/README.rst
index 8480e0b32a035af713c9b6e22119566a456407b7..674be8703ba0c7fe3b6b4cd0e205a8b555e7ed76 100644
--- a/README.rst
+++ b/README.rst
@@ -7,8 +7,8 @@ Installation
 
 To get setup you must have the following installed:
 
- * Python 2.6
- * virtualenv 1.5
+ * Python 2.7
+ * virtualenv 1.11
 
 Setting up the environment
 --------------------------
diff --git a/__init__.py b/helsinki/__init__.py
similarity index 100%
rename from __init__.py
rename to helsinki/__init__.py
diff --git a/settings.py b/helsinki/settings.py
similarity index 98%
rename from settings.py
rename to helsinki/settings.py
index 0393cd288f8c6cd0562f59e43e35bea729e309c0..beb9bd1540eb3fa5b02242c9f0274556c43fa1c8 100644
--- a/settings.py
+++ b/helsinki/settings.py
@@ -53,7 +53,7 @@ MIDDLEWARE_CLASSES = (
     'django.contrib.messages.middleware.MessageMiddleware',
 )
 
-ROOT_URLCONF = 'urls'
+ROOT_URLCONF = 'helsinki.urls'
 
 TEMPLATE_DIRS = (
     os.path.join(PROJECT_DIR, "templates"),
diff --git a/site_media/buttons/default-11.png b/helsinki/site_media/buttons/default-11.png
similarity index 100%
rename from site_media/buttons/default-11.png
rename to helsinki/site_media/buttons/default-11.png
diff --git a/site_media/buttons/default-17.png b/helsinki/site_media/buttons/default-17.png
similarity index 100%
rename from site_media/buttons/default-17.png
rename to helsinki/site_media/buttons/default-17.png
diff --git a/site_media/js/jquery-1.6.1/jquery.min.js b/helsinki/site_media/js/jquery-1.6.1/jquery.min.js
similarity index 100%
rename from site_media/js/jquery-1.6.1/jquery.min.js
rename to helsinki/site_media/js/jquery-1.6.1/jquery.min.js
diff --git a/site_media/js/jqueryui-custom-1.8.14/images/ui-bg_diagonals-thick_18_b81900_40x40.png b/helsinki/site_media/js/jqueryui-custom-1.8.14/images/ui-bg_diagonals-thick_18_b81900_40x40.png
similarity index 100%
rename from site_media/js/jqueryui-custom-1.8.14/images/ui-bg_diagonals-thick_18_b81900_40x40.png
rename to helsinki/site_media/js/jqueryui-custom-1.8.14/images/ui-bg_diagonals-thick_18_b81900_40x40.png
diff --git a/site_media/js/jqueryui-custom-1.8.14/images/ui-bg_diagonals-thick_20_666666_40x40.png b/helsinki/site_media/js/jqueryui-custom-1.8.14/images/ui-bg_diagonals-thick_20_666666_40x40.png
similarity index 100%
rename from site_media/js/jqueryui-custom-1.8.14/images/ui-bg_diagonals-thick_20_666666_40x40.png
rename to helsinki/site_media/js/jqueryui-custom-1.8.14/images/ui-bg_diagonals-thick_20_666666_40x40.png
diff --git a/site_media/js/jqueryui-custom-1.8.14/images/ui-bg_flat_10_000000_40x100.png b/helsinki/site_media/js/jqueryui-custom-1.8.14/images/ui-bg_flat_10_000000_40x100.png
similarity index 100%
rename from site_media/js/jqueryui-custom-1.8.14/images/ui-bg_flat_10_000000_40x100.png
rename to helsinki/site_media/js/jqueryui-custom-1.8.14/images/ui-bg_flat_10_000000_40x100.png
diff --git a/site_media/js/jqueryui-custom-1.8.14/images/ui-bg_glass_100_f6f6f6_1x400.png b/helsinki/site_media/js/jqueryui-custom-1.8.14/images/ui-bg_glass_100_f6f6f6_1x400.png
similarity index 100%
rename from site_media/js/jqueryui-custom-1.8.14/images/ui-bg_glass_100_f6f6f6_1x400.png
rename to helsinki/site_media/js/jqueryui-custom-1.8.14/images/ui-bg_glass_100_f6f6f6_1x400.png
diff --git a/site_media/js/jqueryui-custom-1.8.14/images/ui-bg_glass_100_fdf5ce_1x400.png b/helsinki/site_media/js/jqueryui-custom-1.8.14/images/ui-bg_glass_100_fdf5ce_1x400.png
similarity index 100%
rename from site_media/js/jqueryui-custom-1.8.14/images/ui-bg_glass_100_fdf5ce_1x400.png
rename to helsinki/site_media/js/jqueryui-custom-1.8.14/images/ui-bg_glass_100_fdf5ce_1x400.png
diff --git a/site_media/js/jqueryui-custom-1.8.14/images/ui-bg_glass_65_ffffff_1x400.png b/helsinki/site_media/js/jqueryui-custom-1.8.14/images/ui-bg_glass_65_ffffff_1x400.png
similarity index 100%
rename from site_media/js/jqueryui-custom-1.8.14/images/ui-bg_glass_65_ffffff_1x400.png
rename to helsinki/site_media/js/jqueryui-custom-1.8.14/images/ui-bg_glass_65_ffffff_1x400.png
diff --git a/site_media/js/jqueryui-custom-1.8.14/images/ui-bg_gloss-wave_35_f6a828_500x100.png b/helsinki/site_media/js/jqueryui-custom-1.8.14/images/ui-bg_gloss-wave_35_f6a828_500x100.png
similarity index 100%
rename from site_media/js/jqueryui-custom-1.8.14/images/ui-bg_gloss-wave_35_f6a828_500x100.png
rename to helsinki/site_media/js/jqueryui-custom-1.8.14/images/ui-bg_gloss-wave_35_f6a828_500x100.png
diff --git a/site_media/js/jqueryui-custom-1.8.14/images/ui-bg_highlight-soft_100_eeeeee_1x100.png b/helsinki/site_media/js/jqueryui-custom-1.8.14/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
similarity index 100%
rename from site_media/js/jqueryui-custom-1.8.14/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
rename to helsinki/site_media/js/jqueryui-custom-1.8.14/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
diff --git a/site_media/js/jqueryui-custom-1.8.14/images/ui-bg_highlight-soft_75_ffe45c_1x100.png b/helsinki/site_media/js/jqueryui-custom-1.8.14/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
similarity index 100%
rename from site_media/js/jqueryui-custom-1.8.14/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
rename to helsinki/site_media/js/jqueryui-custom-1.8.14/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
diff --git a/site_media/js/jqueryui-custom-1.8.14/images/ui-icons_222222_256x240.png b/helsinki/site_media/js/jqueryui-custom-1.8.14/images/ui-icons_222222_256x240.png
similarity index 100%
rename from site_media/js/jqueryui-custom-1.8.14/images/ui-icons_222222_256x240.png
rename to helsinki/site_media/js/jqueryui-custom-1.8.14/images/ui-icons_222222_256x240.png
diff --git a/site_media/js/jqueryui-custom-1.8.14/images/ui-icons_228ef1_256x240.png b/helsinki/site_media/js/jqueryui-custom-1.8.14/images/ui-icons_228ef1_256x240.png
similarity index 100%
rename from site_media/js/jqueryui-custom-1.8.14/images/ui-icons_228ef1_256x240.png
rename to helsinki/site_media/js/jqueryui-custom-1.8.14/images/ui-icons_228ef1_256x240.png
diff --git a/site_media/js/jqueryui-custom-1.8.14/images/ui-icons_ef8c08_256x240.png b/helsinki/site_media/js/jqueryui-custom-1.8.14/images/ui-icons_ef8c08_256x240.png
similarity index 100%
rename from site_media/js/jqueryui-custom-1.8.14/images/ui-icons_ef8c08_256x240.png
rename to helsinki/site_media/js/jqueryui-custom-1.8.14/images/ui-icons_ef8c08_256x240.png
diff --git a/site_media/js/jqueryui-custom-1.8.14/images/ui-icons_ffd27a_256x240.png b/helsinki/site_media/js/jqueryui-custom-1.8.14/images/ui-icons_ffd27a_256x240.png
similarity index 100%
rename from site_media/js/jqueryui-custom-1.8.14/images/ui-icons_ffd27a_256x240.png
rename to helsinki/site_media/js/jqueryui-custom-1.8.14/images/ui-icons_ffd27a_256x240.png
diff --git a/site_media/js/jqueryui-custom-1.8.14/images/ui-icons_ffffff_256x240.png b/helsinki/site_media/js/jqueryui-custom-1.8.14/images/ui-icons_ffffff_256x240.png
similarity index 100%
rename from site_media/js/jqueryui-custom-1.8.14/images/ui-icons_ffffff_256x240.png
rename to helsinki/site_media/js/jqueryui-custom-1.8.14/images/ui-icons_ffffff_256x240.png
diff --git a/site_media/js/jqueryui-custom-1.8.14/jquery-ui.css b/helsinki/site_media/js/jqueryui-custom-1.8.14/jquery-ui.css
similarity index 100%
rename from site_media/js/jqueryui-custom-1.8.14/jquery-ui.css
rename to helsinki/site_media/js/jqueryui-custom-1.8.14/jquery-ui.css
diff --git a/site_media/js/jqueryui-custom-1.8.14/jquery-ui.min.js b/helsinki/site_media/js/jqueryui-custom-1.8.14/jquery-ui.min.js
similarity index 100%
rename from site_media/js/jqueryui-custom-1.8.14/jquery-ui.min.js
rename to helsinki/site_media/js/jqueryui-custom-1.8.14/jquery-ui.min.js
diff --git a/site_media/js/jqueryui-custom-1.8.14/jquery.ui.datepicker-de.js b/helsinki/site_media/js/jqueryui-custom-1.8.14/jquery.ui.datepicker-de.js
similarity index 100%
rename from site_media/js/jqueryui-custom-1.8.14/jquery.ui.datepicker-de.js
rename to helsinki/site_media/js/jqueryui-custom-1.8.14/jquery.ui.datepicker-de.js
diff --git a/site_media/programcalendar.js b/helsinki/site_media/programcalendar.js
similarity index 100%
rename from site_media/programcalendar.js
rename to helsinki/site_media/programcalendar.js
diff --git a/templates/404.html b/helsinki/templates/404.html
similarity index 100%
rename from templates/404.html
rename to helsinki/templates/404.html
diff --git a/templates/500.html b/helsinki/templates/500.html
similarity index 100%
rename from templates/500.html
rename to helsinki/templates/500.html
diff --git a/templates/base.html b/helsinki/templates/base.html
similarity index 100%
rename from templates/base.html
rename to helsinki/templates/base.html
diff --git a/templates/program/boxes/broadcastformat.html b/helsinki/templates/program/boxes/broadcastformat.html
similarity index 100%
rename from templates/program/boxes/broadcastformat.html
rename to helsinki/templates/program/boxes/broadcastformat.html
diff --git a/templates/program/boxes/current.html b/helsinki/templates/program/boxes/current.html
similarity index 100%
rename from templates/program/boxes/current.html
rename to helsinki/templates/program/boxes/current.html
diff --git a/templates/program/boxes/musicfocus.html b/helsinki/templates/program/boxes/musicfocus.html
similarity index 100%
rename from templates/program/boxes/musicfocus.html
rename to helsinki/templates/program/boxes/musicfocus.html
diff --git a/templates/program/boxes/recommendations.html b/helsinki/templates/program/boxes/recommendations.html
similarity index 100%
rename from templates/program/boxes/recommendations.html
rename to helsinki/templates/program/boxes/recommendations.html
diff --git a/templates/program/boxes/showinformation.html b/helsinki/templates/program/boxes/showinformation.html
similarity index 100%
rename from templates/program/boxes/showinformation.html
rename to helsinki/templates/program/boxes/showinformation.html
diff --git a/templates/program/boxes/showtopic.html b/helsinki/templates/program/boxes/showtopic.html
similarity index 100%
rename from templates/program/boxes/showtopic.html
rename to helsinki/templates/program/boxes/showtopic.html
diff --git a/templates/program/day_schedule.html b/helsinki/templates/program/day_schedule.html
similarity index 100%
rename from templates/program/day_schedule.html
rename to helsinki/templates/program/day_schedule.html
diff --git a/templates/program/host_detail.html b/helsinki/templates/program/host_detail.html
similarity index 100%
rename from templates/program/host_detail.html
rename to helsinki/templates/program/host_detail.html
diff --git a/templates/program/host_list.html b/helsinki/templates/program/host_list.html
similarity index 100%
rename from templates/program/host_list.html
rename to helsinki/templates/program/host_list.html
diff --git a/templates/program/recommendations.html b/helsinki/templates/program/recommendations.html
similarity index 100%
rename from templates/program/recommendations.html
rename to helsinki/templates/program/recommendations.html
diff --git a/templates/program/show_detail.html b/helsinki/templates/program/show_detail.html
similarity index 100%
rename from templates/program/show_detail.html
rename to helsinki/templates/program/show_detail.html
diff --git a/templates/program/show_list.html b/helsinki/templates/program/show_list.html
similarity index 100%
rename from templates/program/show_list.html
rename to helsinki/templates/program/show_list.html
diff --git a/templates/program/styles.css b/helsinki/templates/program/styles.css
similarity index 100%
rename from templates/program/styles.css
rename to helsinki/templates/program/styles.css
diff --git a/templates/program/timeslot_detail.html b/helsinki/templates/program/timeslot_detail.html
similarity index 100%
rename from templates/program/timeslot_detail.html
rename to helsinki/templates/program/timeslot_detail.html
diff --git a/templates/program/week_schedule.html b/helsinki/templates/program/week_schedule.html
similarity index 100%
rename from templates/program/week_schedule.html
rename to helsinki/templates/program/week_schedule.html
diff --git a/templates/program/week_schedule_timeslot.html b/helsinki/templates/program/week_schedule_timeslot.html
similarity index 100%
rename from templates/program/week_schedule_timeslot.html
rename to helsinki/templates/program/week_schedule_timeslot.html
diff --git a/urls.py b/helsinki/urls.py
similarity index 100%
rename from urls.py
rename to helsinki/urls.py
diff --git a/helsinki/wsgi.py b/helsinki/wsgi.py
new file mode 100644
index 0000000000000000000000000000000000000000..3d00c6a64f6c204a374becfd9d72662ddfe0fab2
--- /dev/null
+++ b/helsinki/wsgi.py
@@ -0,0 +1,28 @@
+"""
+WSGI config for helsinki project.
+
+This module contains the WSGI application used by Django's development server
+and any production WSGI deployments. It should expose a module-level variable
+named ``application``. Django's ``runserver`` and ``runfcgi`` commands discover
+this application via the ``WSGI_APPLICATION`` setting.
+
+Usually you will have the standard Django WSGI application here, but it also
+might make sense to replace the whole Django WSGI application with a custom one
+that later delegates to the Django one. For example, you could introduce WSGI
+middleware here, or combine a Django application with an application of another
+framework.
+
+"""
+import os
+
+os.environ.setdefault("DJANGO_SETTINGS_MODULE", "helsinki.settings")
+
+# This application object is used by any WSGI server configured to use this
+# file. This includes Django's development server, if the WSGI_APPLICATION
+# setting points here.
+from django.core.wsgi import get_wsgi_application
+application = get_wsgi_application()
+
+# Apply WSGI middleware here.
+# from helloworld.wsgi import HelloWorldApplication
+# application = HelloWorldApplication(application)
diff --git a/manage.py b/manage.py
index 5e78ea979ea3846a4602f604e265fc4666beffac..1fbadd7bd5cf67dad228ede339e9532644b53a69 100755
--- a/manage.py
+++ b/manage.py
@@ -1,11 +1,10 @@
 #!/usr/bin/env python
-from django.core.management import execute_manager
-try:
-    import settings # Assumed to be in the same directory.
-except ImportError:
-    import sys
-    sys.stderr.write("Error: Can't find the file 'settings.py' in the directory containing %r. It appears you've customized things.\nYou'll have to run django-admin.py, passing it your settings module.\n(If the file settings.py does indeed exist, it's causing an ImportError somehow.)\n" % __file__)
-    sys.exit(1)
+import os
+import sys
 
 if __name__ == "__main__":
-    execute_manager(settings)
+    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "helsinki.settings")
+
+    from django.core.management import execute_from_command_line
+
+    execute_from_command_line(sys.argv)
diff --git a/requirements.txt b/requirements.txt
index 6fd94772366132e66e03d18a3d5b20a795045838..8567bc6079a07f2b4b03345a82dd115cb14cf740 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,6 +1,6 @@
-Django==1.2.7
-MySQL-python==1.2.3
-PIL==1.1.7
+Django==1.4.10
+MySQL-python==1.2.5
+Pillow==2.3.0
 PyYAML==3.10
-django-tinymce==1.5.1a2
+django-tinymce==1.5.2
 python-dateutil==1.5