diff --git a/app/controllers/application.rb b/app/controllers/application.rb
index af5959449049f1566c50f7c308857c4942ef6690..c08899c32366ca1f51a89a81771f92088ec7c957 100644
--- a/app/controllers/application.rb
+++ b/app/controllers/application.rb
@@ -1,9 +1,4 @@
 # Filters added to this controller will be run for all controllers in the application.
 # Likewise, all the methods added will be available for all controllers.
 class ApplicationController < ActionController::Base
-  def logout
-    cookies.delete :user_id
-    flash[:notice] = "You have been logged out"
-    redirect_to :controller => "users", :action => "login"
-  end
 end
diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb
index a3fafd6a526c9dc7579e3d9e9fec1913d351f842..a1a495c5bb7c5d21f8d6530df586431e209f69e1 100644
--- a/app/controllers/users_controller.rb
+++ b/app/controllers/users_controller.rb
@@ -50,12 +50,10 @@ class UsersController < ApplicationController
   end
 
   def login
-
-    logger.add(Logger::DEBUG, "This is a log message!")
-
     @user_pages, @users = paginate :users, :per_page => 10
 
     if params[:id].nil?
+      @hide_logout = true
       return
     end
       
@@ -69,4 +67,11 @@ class UsersController < ApplicationController
     flash[:notice] = "Welcome, " + user.username
     redirect_to :controller => "recordings", :action => "list_owned"
   end
+
+  def logout
+    cookies.delete :user_id
+    flash[:notice] = "You have been logged out"
+    redirect_to :controller => "users", :action => "login"
+  end
+
 end
diff --git a/app/views/call_attempts/edit.rhtml b/app/views/call_attempts/edit.rhtml
index db61e46680f2afe53579027310e14c4899112442..5bd1800240e251380b2efffc28ead0843cce3682 100644
--- a/app/views/call_attempts/edit.rhtml
+++ b/app/views/call_attempts/edit.rhtml
@@ -1,4 +1,4 @@
-<h1>Editing call_attempt</h1>
+<% @heading = "Editing call_attempt" %>
 
 <%= start_form_tag :action => 'update', :id => @call_attempt %>
   <%= render :partial => 'form' %>
diff --git a/app/views/call_attempts/list.rhtml b/app/views/call_attempts/list.rhtml
index 7fe5cec66f22367a2ec1f8f42c7d16f3cec3fb87..db46b0bbfe3ae18dfb812e296ba8e305824bff57 100644
--- a/app/views/call_attempts/list.rhtml
+++ b/app/views/call_attempts/list.rhtml
@@ -1,4 +1,4 @@
-<h1>Listing call_attempts</h1>
+<% @heading = "Listing call_attempts" %>
 
 <table>
   <tr>
diff --git a/app/views/call_attempts/new.rhtml b/app/views/call_attempts/new.rhtml
index 2f38ef2a93b8daa4bbc557ef28d9ba30431944c6..81eaac6901f55a5e83985028082d5d32ec149d1a 100644
--- a/app/views/call_attempts/new.rhtml
+++ b/app/views/call_attempts/new.rhtml
@@ -1,4 +1,4 @@
-<h1>New call_attempt</h1>
+<% @heading = "New call_attempt" %>
 
 <%= start_form_tag :action => 'create' %>
   <%= render :partial => 'form' %>
diff --git a/app/views/call_attempts/show.rhtml b/app/views/call_attempts/show.rhtml
index 07fb205dfb4e7b486423902267858d54acd35d6d..4937c488dcc7e8ded8e8dd666a7ada04cd4a33d7 100644
--- a/app/views/call_attempts/show.rhtml
+++ b/app/views/call_attempts/show.rhtml
@@ -1,3 +1,5 @@
+<% @heading = "Showing call_attempt" %>
+
 <% for column in CallAttempt.content_columns %>
 <p>
   <b><%= column.human_name %>:</b> <%=h @call_attempt.send(column.name) %>
diff --git a/app/views/layouts/application.rhtml b/app/views/layouts/application.rhtml
new file mode 100644
index 0000000000000000000000000000000000000000..5e7fff9d6b9903b6d432f639fa91d303aaa8e732
--- /dev/null
+++ b/app/views/layouts/application.rhtml
@@ -0,0 +1,21 @@
+<html>
+<head>
+  <title><%= @heading %></title>
+  <%= stylesheet_link_tag 'scaffold' %>
+</head>
+<body>
+
+<p style="color: green"><%= flash[:notice] %></p>
+
+<h1><%= @heading %></h1>
+<%= @content_for_layout %>
+
+<% unless @hide_logout %>
+  <form method="post" 
+	action="<%= url_for :controller=>"users", :action=>"logout" %>" >
+    <input type="submit" value="Logout" />
+  </form>
+<% end %>
+
+</body>
+</html>
diff --git a/app/views/layouts/call_attempts.rhtml b/app/views/layouts/call_attempts.rhtml
deleted file mode 100644
index d8a91f466941de8c34290c0678fcc10ea2eaa43e..0000000000000000000000000000000000000000
--- a/app/views/layouts/call_attempts.rhtml
+++ /dev/null
@@ -1,13 +0,0 @@
-<html>
-<head>
-  <title>CallAttempts: <%= controller.action_name %></title>
-  <%= stylesheet_link_tag 'scaffold' %>
-</head>
-<body>
-
-<p style="color: green"><%= flash[:notice] %></p>
-
-<%= @content_for_layout %>
-
-</body>
-</html>
diff --git a/app/views/layouts/recordings.rhtml b/app/views/layouts/recordings.rhtml
deleted file mode 100644
index fd359113c3e2257ce43b6d48687b55597fa2e925..0000000000000000000000000000000000000000
--- a/app/views/layouts/recordings.rhtml
+++ /dev/null
@@ -1,13 +0,0 @@
-<html>
-<head>
-  <title>Recordings: <%= controller.action_name %></title>
-  <%= stylesheet_link_tag 'scaffold' %>
-</head>
-<body>
-
-<p style="color: green"><%= flash[:notice] %></p>
-
-<%= @content_for_layout %>
-
-</body>
-</html>
diff --git a/app/views/layouts/users.rhtml b/app/views/layouts/users.rhtml
deleted file mode 100644
index 30bf3ceaba2a8ebfcd579295ddaabb6a1c7e8cd7..0000000000000000000000000000000000000000
--- a/app/views/layouts/users.rhtml
+++ /dev/null
@@ -1,13 +0,0 @@
-<html>
-<head>
-  <title>Users: <%= controller.action_name %></title>
-  <%= stylesheet_link_tag 'scaffold' %>
-</head>
-<body>
-
-<p style="color: green"><%= flash[:notice] %></p>
-
-<%= @content_for_layout %>
-
-</body>
-</html>
diff --git a/app/views/recordings/edit.rhtml b/app/views/recordings/edit.rhtml
index 32de3c192628544baa0a22daf17c0fca0d66a601..9358bc9bae6dfecbd070c067e335dd0c2730f579 100644
--- a/app/views/recordings/edit.rhtml
+++ b/app/views/recordings/edit.rhtml
@@ -1,4 +1,4 @@
-<h1>Editing recording</h1>
+<% @heading = "New call_attempt" %>
 
 <%= start_form_tag :action => 'update', :id => @recording %>
   <%= render :partial => 'form' %>
diff --git a/app/views/recordings/list.rhtml b/app/views/recordings/list.rhtml
index a23123017b810747446887f02ac0ae26323d506e..f80b5f66b5183df26b5f8005a1404b20d8f33655 100644
--- a/app/views/recordings/list.rhtml
+++ b/app/views/recordings/list.rhtml
@@ -1,4 +1,4 @@
-<h1>Listing recordings</h1>
+<% @heading = "Listing recordings" %>
 
 <table>
   <tr>
diff --git a/app/views/recordings/list_owned.rhtml b/app/views/recordings/list_owned.rhtml
index 7df55e3b931c4238d14f4ebdc2f788f7b2c9676e..0588d6f0c44813b42df81d6a2ee0dc2edc605974 100644
--- a/app/views/recordings/list_owned.rhtml
+++ b/app/views/recordings/list_owned.rhtml
@@ -1,4 +1,4 @@
-<h1>Listing owned recordings</h1>
+<% @heading = "Listing owned recordings" %>
 
 <p>All recordings owned by <%= @owner.username %>.
 
diff --git a/app/views/recordings/new.rhtml b/app/views/recordings/new.rhtml
index 45b6338cb2e7c1b1cb4d1b2e9833ff936b6d354a..60168aa4110e83fe8fe81a4de47dab9f29359e03 100644
--- a/app/views/recordings/new.rhtml
+++ b/app/views/recordings/new.rhtml
@@ -1,4 +1,4 @@
-<h1>New recording</h1>
+<% @heading = "New recording" %>
 
 <%= start_form_tag :action => 'create' %>
   <%= render :partial => 'form' %>
diff --git a/app/views/recordings/show.rhtml b/app/views/recordings/show.rhtml
index a77c280c6177e8dfc65a7f7af845b8d734163ce8..610df990047f620d315cd49fcfdd905cc7693ba6 100644
--- a/app/views/recordings/show.rhtml
+++ b/app/views/recordings/show.rhtml
@@ -1,3 +1,4 @@
+<% @heading = "Show recording" %>
 <% for column in Recording.content_columns %>
 <p>
   <b><%= column.human_name %>:</b> <%=h @recording.send(column.name) %>
diff --git a/app/views/users/edit.rhtml b/app/views/users/edit.rhtml
index b02e6f27674a47d2039b808329725b3edd80e252..d782e2f99ffc5ab8b0c74027917e2c76ee51ff03 100644
--- a/app/views/users/edit.rhtml
+++ b/app/views/users/edit.rhtml
@@ -1,4 +1,4 @@
-<h1>Editing user</h1>
+<% @heading = "Editing user" %>
 
 <%= start_form_tag :action => 'update', :id => @user %>
   <%= render :partial => 'form' %>
diff --git a/app/views/users/list.rhtml b/app/views/users/list.rhtml
index be88e00809a21615899e2a16b840ca2c592dc47a..9871c78a508a356a0608b019d806a126ddd4c274 100644
--- a/app/views/users/list.rhtml
+++ b/app/views/users/list.rhtml
@@ -1,4 +1,4 @@
-<h1>Listing users</h1>
+<% @heading = "Listing users" %>
 
 <table>
   <tr>
diff --git a/app/views/users/login.rhtml b/app/views/users/login.rhtml
index b71cdf85ba68283e9942801d6d5a6b4925673887..bee1f519b5d3f96b2db2de08ea718fc32e34bf3c 100644
--- a/app/views/users/login.rhtml
+++ b/app/views/users/login.rhtml
@@ -1,4 +1,4 @@
-<h1>Login</h1>
+<% @heading = "Login" %>
 
 <p>Welcome!  Who are you?</p>
 
diff --git a/app/views/users/new.rhtml b/app/views/users/new.rhtml
index 3144e59ace5372d9304ba702f0ef2abee9ef2dbb..1f4117464c6e9d3d8b39af45dae7b0cf27ebae5b 100644
--- a/app/views/users/new.rhtml
+++ b/app/views/users/new.rhtml
@@ -1,4 +1,4 @@
-<h1>New user</h1>
+<% @heading = "New user" %>
 
 <%= start_form_tag :action => 'create' %>
   <%= render :partial => 'form' %>
diff --git a/app/views/users/show.rhtml b/app/views/users/show.rhtml
index 562ade0a1892c51dca3efab50ae24dbdf81f2eca..393f12e2074fd697fec05cbf2ac485c181241dd4 100644
--- a/app/views/users/show.rhtml
+++ b/app/views/users/show.rhtml
@@ -1,3 +1,4 @@
+<% @heading = "Show user" %>
 <% for column in User.content_columns %>
 <p>
   <b><%= column.human_name %>:</b> <%=h @user.send(column.name) %>