<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -17,14 +17,17 @@ module ActivePresenter
     #
     #
     def self.presents(*types)
-      attr_accessor *types
+      types_and_classes = types.extract_options!
+      types.each { |t| types_and_classes[t] = t.to_s.tableize.classify.constantize }
+
+      attr_accessor *types_and_classes.keys
       
-      types.each do |t|
+      types_and_classes.keys.each do |t|
         define_method(&quot;#{t}_errors&quot;) do
           send(t).errors
         end
         
-        presented[t] = t.to_s.tableize.classify.constantize
+        presented[t] = types_and_classes[t]
       end
     end
     
@@ -222,7 +225,7 @@ module ActivePresenter
         presentable    = presentable_for(name)
         return false unless presentable
         flat_attribute = {flatten_attribute_name(name, presentable) =&gt; ''} #remove_att... normally takes a hash, so we use a ''
-        presentable.to_s.tableize.classify.constantize.new.send(:remove_attributes_protected_from_mass_assignment, flat_attribute).empty?
+        presented[presentable].new.send(:remove_attributes_protected_from_mass_assignment, flat_attribute).empty?
       end
       
       def run_callbacks_with_halt(callback)</diff>
      <filename>lib/active_presenter/base.rb</filename>
    </modified>
    <modified>
      <diff>@@ -277,4 +277,14 @@ Expectations do
   expect true do
     SignupNoNilPresenter.new(:user =&gt; nil, :account =&gt; Account.new).save!
   end
+
+  expect Address do
+    PresenterWithTwoAddresses.new.secondary_address
+  end
+  
+  expect &quot;123 awesome st&quot; do
+    p = PresenterWithTwoAddresses.new(:secondary_address_street =&gt; &quot;123 awesome st&quot;)
+    p.save
+    p.secondary_address_street
+  end
 end</diff>
      <filename>test/base_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -39,6 +39,10 @@ class Account &lt; ActiveRecord::Base; end
 class Address &lt; ActiveRecord::Base; end
 class AccountInfo &lt; ActiveRecord::Base; end
 
+class PresenterWithTwoAddresses &lt; ActivePresenter::Base
+  presents :address, :secondary_address =&gt; Address
+end
+
 class SignupPresenter &lt; ActivePresenter::Base
   presents :account, :user
 end</diff>
      <filename>test/test_helper.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>f253eb51a037fff4854fb687f4aabe38d4366909</id>
    </parent>
  </parents>
  <author>
    <name>James Golick</name>
    <email>james@giraffesoft.ca</email>
  </author>
  <url>http://github.com/steveluscher/active_presenter/commit/7576ebf25057bdab630831be8dcb170fa21bdc63</url>
  <id>7576ebf25057bdab630831be8dcb170fa21bdc63</id>
  <committed-date>2009-05-17T14:39:04-07:00</committed-date>
  <authored-date>2009-05-17T14:39:04-07:00</authored-date>
  <message>make it possible to override default types</message>
  <tree>5c4c53850e4fdf1ed26d52920f37a4ca42743734</tree>
  <committer>
    <name>James Golick</name>
    <email>james@giraffesoft.ca</email>
  </committer>
</commit>
