diff --git a/app/assets/images/rss_icon_gray.png b/app/assets/images/rss_icon_gray.png
new file mode 100644
index 0000000000000000000000000000000000000000..90e509aa4bd1feadf19b1603495b9f8dd1e5bbca
Binary files /dev/null and b/app/assets/images/rss_icon_gray.png differ
diff --git a/app/assets/stylesheets/application.css b/app/assets/stylesheets/application.css
index 47ec5f5a91fb169ad6e65cc327e414d4b4d1adfc..e4de2a2772f7046e96aeabfbb50f94c675ebbbb9 100644
--- a/app/assets/stylesheets/application.css
+++ b/app/assets/stylesheets/application.css
@@ -40,6 +40,9 @@
 .append-bottom-10 {
   margin-bottom:10px;
 }
+.append-bottom-20 {
+  margin-bottom:20px;
+}
 .prepend-top-10 {
   margin-top:10px;
 }
diff --git a/app/assets/stylesheets/projects.css.scss b/app/assets/stylesheets/projects.css.scss
index 5e3777d95ebf53b61a04a12677255256cdcea106..366a0d84a407b856836c7b24540ff2683842ae0e 100644
--- a/app/assets/stylesheets/projects.css.scss
+++ b/app/assets/stylesheets/projects.css.scss
@@ -639,3 +639,11 @@ h4.middle-panel {
   background: #4A2;
   color: white;
 }
+
+.rss-icon { 
+  margin:0 15px;
+  padding:5px;
+  border:1px solid #ccc;
+  border-radius:3px;
+  float:left;
+}
diff --git a/app/controllers/keys_controller.rb b/app/controllers/keys_controller.rb
index 84f47675936118bb663bd2854677ebb3c8ce4e51..33c6958d6ab698bcce47ef262645cc62f3499ce2 100644
--- a/app/controllers/keys_controller.rb
+++ b/app/controllers/keys_controller.rb
@@ -6,6 +6,10 @@ class KeysController < ApplicationController
     @keys = current_user.keys.all
   end
 
+  def show
+    @key = current_user.keys.find(params[:id])
+  end
+
   def new
     @key = current_user.keys.new
 
diff --git a/app/models/user.rb b/app/models/user.rb
index de0bb637c15384518dd013a7fc6d38e3170100d6..83e2a3248bb541f9b1a24e1e5eaea63d67c56bcf 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -46,6 +46,10 @@ class User < ActiveRecord::Base
     admin
   end
 
+  def require_ssh_key?
+    keys.count == 0
+  end
+
   def can_create_project?
     projects_limit >= my_own_projects.count
   end
diff --git a/app/views/commits/index.html.haml b/app/views/commits/index.html.haml
index 274f8c22828254b1ba099ca88380e8fab5a21e79..bce1fefde3b4a055fed647f733a09f203d359fe1 100644
--- a/app/views/commits/index.html.haml
+++ b/app/views/commits/index.html.haml
@@ -1,8 +1,10 @@
 - content_for(:body_class, "project-page commits-page")
+- if current_user.private_token   
+  = content_for :rss_icon do 
+    .rss-icon
+      = link_to project_commits_path(@project, :atom, { :private_token => current_user.private_token, :ref => @ref }) do 
+        = image_tag "rss_icon_gray.png", :width => 16, :title => "feed"
 
--#%a.right.button{:href => "#"} Download
--#-if can? current_user, :admin_project, @project
-  %a.right.button.blue{:href => "#"} EDIT
 - if params[:path]
   %h2.icon
     %span
diff --git a/app/views/issues/index.html.haml b/app/views/issues/index.html.haml
index 42a7b7ed9246a873a178a8c3a6ca0aebac5bc991..473c8136db2179358612ed697361c9dc5fb6a3b4 100644
--- a/app/views/issues/index.html.haml
+++ b/app/views/issues/index.html.haml
@@ -1,3 +1,9 @@
+- if current_user.private_token   
+  = content_for :rss_icon do 
+    .rss-icon
+      = link_to project_issues_path(@project, :atom, { :private_token => current_user.private_token }) do 
+        = image_tag "rss_icon_gray.png", :width => 16, :title => "feed"
+
 %div#issues-table-holder
   %table.round-borders#issues-table
     %thead
diff --git a/app/views/keys/_show.html.haml b/app/views/keys/_show.html.haml
index fb3599896af59c297fa2963d6a3d1dee87d8cf7d..3d506e425c92e319b3b14e22c60f64e2cd391b5c 100644
--- a/app/views/keys/_show.html.haml
+++ b/app/views/keys/_show.html.haml
@@ -1,4 +1,7 @@
-%tr
-  %td= truncate key.title, :lenght => 12
-  %td= truncate key.key, :lenght => 1114
-  %td= link_to 'Cancel', key, :confirm => 'Are you sure?', :method => :delete, :class => "grey-button negative delete-key", :id => "destroy_key_#{key.id}", :remote => true
+%a.update-item{:href => key_path(key)}
+  %span.update-title
+    = key.title
+  %span.update-author
+    Added
+    = time_ago_in_words(key.created_at)
+    ago
diff --git a/app/views/keys/create.js.haml b/app/views/keys/create.js.haml
index a995c355e3c8fd0773fe490ae6e34b465208896e..0e8757f880f7c65747e8e0c007ef16db8cef85f4 100644
--- a/app/views/keys/create.js.haml
+++ b/app/views/keys/create.js.haml
@@ -1,7 +1,7 @@
 - if @key.valid?
   :plain
     $("#new_key_dialog").dialog("close");
-    $("#keys-table").append("#{escape_javascript(render(:partial => 'show', :locals => {:key => @key} ))}");
+    $("#keys-table .data").append("#{escape_javascript(render(:partial => 'show', :locals => {:key => @key} ))}");
     $("#no_ssh_key_defined").hide();
 - else
   :plain
diff --git a/app/views/keys/index.html.haml b/app/views/keys/index.html.haml
index 8c43ce9b2a53f95c930e41844ce104bcd4e8ff3f..933eef635295f10f3b1658520f599c5e80feb50a 100644
--- a/app/views/keys/index.html.haml
+++ b/app/views/keys/index.html.haml
@@ -1,16 +1,16 @@
-%div#new-key-holder
+%h2.icon
+  %span>
+  SSH Keys
+%div#new-key-holder.right
   = link_to "Add new", new_key_path, :remote => true, :class => "grey-button"
 %br
 
-%table.round-borders#keys-table
-  %tr
-    %th title
-    %th key
-    %th Actions
-  - @keys.each do |key|
-    = render(:partial => 'show', :locals => {:key => key})
+%div#keys-table{ :class => "update-data ui-box ui-box-small ui-box-big" }
+  .data
+    - @keys.each do |key|
+      = render(:partial => 'show', :locals => {:key => key})
 
 :javascript
   $('.delete-key').live('ajax:success', function() {
-    $(this).closest('tr').fadeOut(); });
+    $(this).closest('.update-item').fadeOut(); });
 
diff --git a/app/views/keys/show.html.haml b/app/views/keys/show.html.haml
new file mode 100644
index 0000000000000000000000000000000000000000..9dcaa093ce5b246af231392bee9a7b6ad3215c5d
--- /dev/null
+++ b/app/views/keys/show.html.haml
@@ -0,0 +1,10 @@
+.ui-box.width-100p
+  %h3= @key.title
+  .data
+    %pre= @key.key
+    .clear
+  .buttons
+    = link_to 'Remove', @key, :confirm => 'Are you sure?', :method => :delete, :class => "red-button delete-key right"
+    .clear
+
+
diff --git a/app/views/layouts/_head_panel.html.erb b/app/views/layouts/_head_panel.html.erb
index 5ad82ecd86a1413e282c03d2f1987e03c5094ed7..70484df5badecd5c4cda35a3ccd9a0a6b0f7046d 100644
--- a/app/views/layouts/_head_panel.html.erb
+++ b/app/views/layouts/_head_panel.html.erb
@@ -47,7 +47,7 @@
   <% end %>
 <% end %>
 
-<% if current_user.keys.all.empty? %>
+<% if current_user.require_ssh_key? %>
   <div id="no_ssh_key_defined" class="big-message error">
     <p>No SSH Key is defined. You won't be able to use any Git command!. Click <%=link_to( 'here', keys_path ) %> to add one!
   </div>
diff --git a/app/views/layouts/_middle_panel.html.haml b/app/views/layouts/_middle_panel.html.haml
index 662b4f3cc39866935631eb6351088da966902481..181f846a5b9b4f035707755928e7935aca928030 100644
--- a/app/views/layouts/_middle_panel.html.haml
+++ b/app/views/layouts/_middle_panel.html.haml
@@ -1,7 +1,10 @@
 %h4.middle-panel 
-  .project_name= truncate @project.name, :length => 20
+  .project_name
+    = truncate @project.name, :length => 20
   .git_url_wrapper
     %input.git-url.text{:id => "", :name => "", :readonly => "", :type => "text", :value => @project.url_to_repo, :class => "one_click_select"}
+  = yield :rss_icon
+
   - if @project.repo_exists?
     .right= render :partial => "projects/refs", :locals => { :destination => controller.controller_name == "commits" ? "commits" : "tree" }
 
diff --git a/app/views/profile/password.html.haml b/app/views/profile/password.html.haml
index 0fd20ce2dba1e3b02d0d8d42aa366b1ec9230095..893263f7d8d28421762d40064475006aabde9222 100644
--- a/app/views/profile/password.html.haml
+++ b/app/views/profile/password.html.haml
@@ -1,40 +1,44 @@
-%p Note: after success password update you will be redirected to login page where you should login with new password
-= form_for @user, :url => profile_password_path, :method => :put do |f|
-  -if @user.errors.any?
-    #error_explanation
-      %h2= "#{pluralize(@user.errors.count, "error")} prohibited this password from being saved:"
-      %ul
-        - @user.errors.full_messages.each do |msg|
-          %li= msg
+.ui-box.width-100p.append-bottom-20
+  %h3 Password
+  = form_for @user, :url => profile_password_path, :method => :put do |f|
+    .data
+      %p After successfull password update you will be redirected to login page where you should login with new password
+      -if @user.errors.any?
+        #error_explanation
+          %ul
+            - @user.errors.full_messages.each do |msg|
+              %li= msg
 
-  .form-row
-    = f.label :password
-    %br
-    = f.password_field :password
-  .form-row
-    = f.label :password_confirmation
-    %br
-    = f.password_field :password_confirmation
-  .actions
-    = f.submit 'Save', :class => "grey-button"
+      .form-row
+        = f.label :password
+        %br
+        = f.password_field :password
+      .form-row
+        = f.label :password_confirmation
+        %br
+        = f.password_field :password_confirmation
+    .buttons
+      = f.submit 'Save', :class => "grey-button"
+.clear
 
-%br
-%br
-%br
-
-= form_for @user, :url => profile_reset_private_token_path, :method => :put do |f|
-  %p
-    Current private token:
-    - if current_user.private_token
-      %strong
-        = current_user.private_token
-      %em.cred
-        keep it in secret!
-    - else
-      %strong don`t have
-  .actions
-    - if current_user.private_token
-      = f.submit 'Reset', :confirm => "Are you sure?", :class => "grey-button"
-    - else
-      = f.submit 'Generate', :class => "grey-button"
+.ui-box.width-100p
+  %h3 
+    Private token
+    %em.cred.right
+      keep it in secret!
+  = form_for @user, :url => profile_reset_private_token_path, :method => :put do |f|
+    .data
+      %p Private token used to access application resources without authentication.
+      %p For example its required to access commits feed.
+      %hr
+      %p.cgray
+        - if current_user.private_token
+          = text_field_tag "token", current_user.private_token
+        - else
+          You don`t have one yet. Click generate to fix it.
+    .buttons
+      - if current_user.private_token
+        = f.submit 'Reset', :confirm => "Are you sure?", :class => "grey-button"
+      - else
+        = f.submit 'Generate', :class => "positive-button"
 
diff --git a/app/views/profile/show.html.haml b/app/views/profile/show.html.haml
index 375883fe75bfec8147d22e94733b38651b485532..15233f70eeea9268fa99e853a8b2c463972a6ba3 100644
--- a/app/views/profile/show.html.haml
+++ b/app/views/profile/show.html.haml
@@ -1,36 +1,33 @@
-%h2.icon
-  %span>
-  = @user.name
+.ui-box.width-100p
+  %h3= @user.name
+  = form_for @user, :url => profile_edit_path, :method => :put do |f|
+    .data
+      -if @user.errors.any?
+        #error_explanation
+          %ul
+            - @user.errors.full_messages.each do |msg|
+              %li= msg
 
-.clear
-
-= form_for @user, :url => profile_edit_path, :method => :put do |f|
-  -if @user.errors.any?
-    #error_explanation
-      %ul
-        - @user.errors.full_messages.each do |msg|
-          %li= msg
-
-  .form-row
-    = f.label :name
-    %br
-    = f.text_field :name
-  .form-row
-    = f.label :email
-    %br
-    = f.text_field :email
-  .form-row
-    = f.label :skype
-    %br
-    = f.text_field :skype
-  .form-row
-    = f.label :linkedin
-    %br
-    = f.text_field :linkedin
-  .form-row
-    = f.label :twitter
-    %br
-    = f.text_field :twitter
-  .actions
-    = f.submit 'Save', :class => "grey-button"
+      .form-row
+        = f.label :name
+        %br
+        = f.text_field :name
+      .form-row
+        = f.label :email
+        %br
+        = f.text_field :email
+      .form-row
+        = f.label :skype
+        %br
+        = f.text_field :skype
+      .form-row
+        = f.label :linkedin
+        %br
+        = f.text_field :linkedin
+      .form-row
+        = f.label :twitter
+        %br
+        = f.text_field :twitter
+    .buttons
+      = f.submit 'Save', :class => "grey-button"
 
diff --git a/spec/requests/keys_spec.rb b/spec/requests/keys_spec.rb
index 6ce22b30883cc8dd7b8b4d0bd0ed779383b649cf..be1f42a497c40ea2603e021f8738d2a0f4e5abc6 100644
--- a/spec/requests/keys_spec.rb
+++ b/spec/requests/keys_spec.rb
@@ -16,9 +16,11 @@ describe "Issues" do
     it { should have_content(@key.title) }
 
     describe "Destroy" do
+      before { visit key_path(@key) }
+
       it "should remove entry" do
         expect {
-          click_link "destroy_key_#{@key.id}"
+          click_link "Remove"
         }.to change { @user.keys.count }.by(-1)
       end
     end
@@ -47,8 +49,17 @@ describe "Issues" do
 
         page.should_not have_content("Add new public key")
         page.should have_content "laptop"
-        page.should have_content "publickey234="
       end
     end
   end
+
+  describe "Show page" do 
+    before do
+      @key = Factory :key, :user => @user
+      visit key_path(@key) 
+    end
+    
+    it { page.should have_content @key.title }
+    it { page.should have_content @key.key[0..10] }
+  end
 end