Folder : collection of things - Owned by a person - Some hardcoded site default folders (global => true) - Only admins can create global folders - hashes as ids Custom Searches - personal customizable folder like things - eg all things by barry all tweets and images Things : - topics - tweets - images - replies All can have replies class Thing < ActiveRecord::Base :id :hash :user_id :parent_id :folder_id :type :timestamps belongs_to :folder end # sti class Topic < Thing has_one :topic_data end class TopicData < ActiveRecord::Base :id :topic_id :subject :body belongs_to :topic end # sti class Tweet < Thing has_one :tweet_data end class TweetData < ActiveRecord::Base :id :tweet_id belongs_to :tweet end # sti class Reply < Thing has_one :reply_data end class ReplyData < ActiveRecord::Base :id :reply_id :body belongs_to :reply end