diff --git a/features/step_definitions/trumpeter_steps.rb b/features/step_definitions/trumpeter_steps.rb
index a3b32a59f7bd52999f38fccd7ac242630e435d77..3464df20992d47a74d3a865c4682d0f8a24a8ce5 100644
--- a/features/step_definitions/trumpeter_steps.rb
+++ b/features/step_definitions/trumpeter_steps.rb
@@ -5,3 +5,26 @@ end
 When /^I write "([^"]*)"$/ do |text|
   fill_in :text, :with => text
 end
+
+def aspects_dropdown
+  find(".dropdown-toggle")
+end
+
+def select_from_dropdown(option_text, dropdown)
+  dropdown.click
+  within ".dropdown-menu" do
+    link = find("a:contains('#{option_text}')")
+    link.should be_visible
+    link.click
+  end
+  #assert dropdown text is link
+end
+
+When /^I select "([^"]*)" in my aspects dropdown$/ do |title|
+  within ".aspect_selector" do
+    select_from_dropdown(title, aspects_dropdown)
+  end
+end
+Then /^"([^"]*)" should be a (limited|public) post in my stream$/ do |post_text, scope|
+  find_post_by_text(post_text).find(".post_scope").text.should =~ /#{scope}/i
+end
\ No newline at end of file
diff --git a/features/trumpeter.feature b/features/trumpeter.feature
index 17b07e384dd2ff3bad2f8a61651fa7506f227699..d60399688e180b63dfbd59ab500df8c897d05654 100644
--- a/features/trumpeter.feature
+++ b/features/trumpeter.feature
@@ -4,14 +4,19 @@ Feature: Creating a new post
     Given a user with username "bob"
     And I sign in as "bob@bob.bob"
     And I trumpet
-    And I write "Rectangles are awesome"
 
   Scenario: Posting a public message
+    And I write "Rectangles are awesome"
+    When I select "Public" in my aspects dropdown
     When I press "Share"
     When I go to "/stream"
     Then I should see "Rectangles are awesome" as the first post in my stream
+    And "Rectangles are awesome" should be a public post in my stream
 
   Scenario: Posting to Aspects
-    When I select "generic" in my aspects dropdown
+    And I write "This is super skrunkle"
+    When I select "All Aspects" in my aspects dropdown
     And I press "Share"
-    Then I should see "Rectangles are awesome" as a limited post in my stream
+    When I go to "/stream"
+    Then I should see "This is super skrunkle" as the first post in my stream
+    Then "This is super skrunkle" should be a limited post in my stream
diff --git a/public/javascripts/app/forms/post_form_view.js b/public/javascripts/app/forms/post_form.js
similarity index 87%
rename from public/javascripts/app/forms/post_form_view.js
rename to public/javascripts/app/forms/post_form.js
index 3c2a84edb97d2f4b9d498afbce0e7e1d4f211f47..1f2a1fc5654deb41feff91e85ae6a7b6f2054d5f 100644
--- a/public/javascripts/app/forms/post_form_view.js
+++ b/public/javascripts/app/forms/post_form.js
@@ -7,7 +7,7 @@ app.forms.Post = app.forms.Base.extend({
 
   formAttrs : {
     ".text" : "text",
-//    ".aspect_ids" : "aspect_ids"
+    "input.aspect_ids" : "aspect_ids"
   },
 
   initialize : function(){
diff --git a/public/javascripts/app/models/status_message.js b/public/javascripts/app/models/status_message.js
index 50190883d1cde09dd9bed87a38be0ef2c1c44b46..e87cdda7fa9655f8afaac3c00603180ab2e4ab34 100644
--- a/public/javascripts/app/models/status_message.js
+++ b/public/javascripts/app/models/status_message.js
@@ -4,8 +4,11 @@ app.models.StatusMessage = app.models.Post.extend({
   },
 
   mungeAndSave : function(){
-    var mungedAttrs = {status_message : _.clone(this.attributes), aspect_ids : ["public"]}
-
+    var mungedAttrs = {status_message : _.clone(this.attributes), aspect_ids : mungeAspects(this.get("aspect_ids"))}
     this.save(mungedAttrs)
+
+    function mungeAspects (value){
+      return [value]
+    }
   }
 });
diff --git a/public/javascripts/app/templates/aspects-dropdown.handlebars b/public/javascripts/app/templates/aspects-dropdown.handlebars
index b1e6ae6d7f4879f00c7c1037f721df6fb1dbd328..14ed9dff653011c4368b46996ce0629991fafd1c 100644
--- a/public/javascripts/app/templates/aspects-dropdown.handlebars
+++ b/public/javascripts/app/templates/aspects-dropdown.handlebars
@@ -1,25 +1,18 @@
-<div class="btn-group aspect_ids check-group">
+
+<div class="btn-group aspects_dropdown check-group">
     <a class="btn btn-info dropdown-toggle" data-toggle="dropdown" href="#">All Aspects <span class="caret"></span></a>
     <ul class="dropdown-menu">
-        <li>
-            <label class="checkbox">
-                <input type="checkbox" value="public"/>Public
-            </label>
-        </li>
-        <li>
-            <label class="checkbox">
-                <input type="checkbox" value="all"/>All Aspects
-            </label>
-        </li>
-        <li class="divider"></li>
+        <li><a href="#" class="public" data-visibility="public">Public</a></li>
+        <li><a href="#" class="all-aspects" data-visibility="all-aspects">All Aspects</a></li>
+        <!--<li class="divider"></li>-->
+        <!--<li><a href="#" data-value="custom">Custom</a></li>-->
+    </ul>
+</div>
 
-        {{#each current_user.aspects}}
+<input type="hidden" class="aspect_ids"/>
 
-        <li>
-            <label class="checkbox">
-                <input type="checkbox" value="{{id}}"/> {{name}}
-            </label>
-        </li>
-        {{/each}}
-    </ul>
-</div>
\ No newline at end of file
+<!--<select multiple=multiple>-->
+    <!--{{#each current_user.aspects}}-->
+        <!--<option value="{{id}}"> {{name}}</option>-->
+    <!--{{/each}}-->
+<!--</select>-->
\ No newline at end of file
diff --git a/public/javascripts/app/templates/post-form.handlebars b/public/javascripts/app/templates/post-form.handlebars
index f57dd6c1bf2a5e165dc7319fd1b177e9ede34352..7e7cdc321ed7f2901a3905c28f9a979733c57686 100644
--- a/public/javascripts/app/templates/post-form.handlebars
+++ b/public/javascripts/app/templates/post-form.handlebars
@@ -2,10 +2,10 @@
     <div class='span12'>
         <form class="new-post well">
             <label>text<textarea class="text"/></label>
-            <input type="submit" class="btn-primary" value="Share"></input>
-
             <div class="aspect_selector"/>
+            <br/>
 
+            <input type="submit" class="btn-primary" value="Share"></input>
         </form>
     </div>
 </div>
diff --git a/public/javascripts/app/views/aspects_dropdown_view.js b/public/javascripts/app/views/aspects_dropdown_view.js
index 805beb259ee8b45dc6f44920a48071eef59f6a4c..67af22f53290dba9fb2e789ad938364f8f65f704 100644
--- a/public/javascripts/app/views/aspects_dropdown_view.js
+++ b/public/javascripts/app/views/aspects_dropdown_view.js
@@ -1,3 +1,28 @@
 app.views.AspectsDropdown = app.views.Base.extend({
-  templateName : "aspects-dropdown"
+  templateName : "aspects-dropdown",
+  events : {
+    "click .dropdown-menu a" : "setVisibility"
+  },
+
+  setVisibility : function(evt){
+    var linkVisibility = $(evt.target).data("visibility")
+      , visibilityCallbacks = {
+          'public' : setPublic,
+          'all-aspects' : setPrivate
+        }
+
+    visibilityCallbacks[linkVisibility].call(this)
+
+    function setPublic (){
+      this.setAspectIds("public")
+    }
+
+    function setPrivate (){
+      this.setAspectIds("all_aspects")
+    }
+  },
+
+  setAspectIds : function(val){
+    this.$("input.aspect_ids").val(val)
+  }
 })
\ No newline at end of file
diff --git a/spec/javascripts/app/forms/post_form_spec.js b/spec/javascripts/app/forms/post_form_spec.js
index a560c632266511c637328a04711ab31d85b65fb0..3161b681c59da3fc44718ede9dbdc6bdf848e2ab 100644
--- a/spec/javascripts/app/forms/post_form_spec.js
+++ b/spec/javascripts/app/forms/post_form_spec.js
@@ -12,11 +12,13 @@ describe("app.forms.Post", function(){
     describe("submitting a valid form", function(){
       beforeEach(function(){
         this.view.$("form .text").val("Oh My")
+        this.view.$("form .aspect_ids").val("public")
       })
 
       it("instantiates a post on form submit", function(){
         this.view.$("form").submit()
         expect(this.view.model.get("text")).toBe("Oh My")
+        expect(this.view.model.get("aspect_ids")).toBe("public")
       })
 
       it("triggers a  'setFromForm' event", function(){
diff --git a/spec/javascripts/app/views/aspects_dropdown_view_spec.js b/spec/javascripts/app/views/aspects_dropdown_view_spec.js
new file mode 100644
index 0000000000000000000000000000000000000000..9baca853ac37a1fb3625211164f1677a77ebce62
--- /dev/null
+++ b/spec/javascripts/app/views/aspects_dropdown_view_spec.js
@@ -0,0 +1,25 @@
+describe("app.views.AspectsDropdown", function(){
+  beforeEach(function(){
+    this.view = new app.views.AspectsDropdown
+  })
+
+  describe("rendering", function(){
+    beforeEach(function(){
+      this.view.render()
+    })
+
+    describe("selecting Public", function(){
+      it("calls set aspect_ids to 'public'", function(){
+        this.view.$("a[data-visibility='public']").click()
+        expect(this.view.$("input.aspect_ids").val()).toBe("public")
+      })
+    })
+
+    describe("selecting All Aspects", function(){
+      it("calls set aspect_ids to 'all'", function(){
+        this.view.$("a[data-visibility='all-aspects']").click()
+        expect(this.view.$("input.aspect_ids").val()).toBe("all_aspects")
+      })
+    })
+  })
+})
\ No newline at end of file