diff --git a/lib/aethyr/core/actions/commands/look.rb b/lib/aethyr/core/actions/commands/look.rb
index d36700d57eac70d314b06fc285926dafe84fd8b9..6b5bd74029ddc193e3b6c72bf7c20de013073fd4 100644
--- a/lib/aethyr/core/actions/commands/look.rb
+++ b/lib/aethyr/core/actions/commands/look.rb
@@ -1,5 +1,5 @@
 require "aethyr/core/actions/command_action"
-require 'aethyr/core/attributes/blind'
+require 'aethyr/core/objects/attributes/blind'
 
 module Aethyr
   module Core
diff --git a/lib/aethyr/core/attributes/blind.rb b/lib/aethyr/core/attributes/blind.rb
deleted file mode 100644
index 466a485396dcce66613a71b4ca6e27668fff2184..0000000000000000000000000000000000000000
--- a/lib/aethyr/core/attributes/blind.rb
+++ /dev/null
@@ -1,19 +0,0 @@
-require 'aethyr/core/objects/attributes/attribute'
-require 'aethyr/core/objects/living'
-
-class Blind < Attribute
-  def initialize(attach_to)
-    if not attach_to.is_a? LivingObject
-      raise ArgumentError.new "Can only attach the Blind attribute to LivingObjects"
-    end
-
-    super(attach_to)
-
-    @attached_to.subscribe(self)
-  end
-
-  def pre_look(data)
-    data[:can_look] = false
-    data[:reason] = "You cannot see while you are blind"
-  end
-end
diff --git a/lib/aethyr/core/objects/attributes/blind.rb b/lib/aethyr/core/objects/attributes/blind.rb
index e61002012531874b70525d66edfc0622623fe11b..38d6b2e1ce7f24a05abcb14e35fbdf1735ab90e3 100644
--- a/lib/aethyr/core/objects/attributes/blind.rb
+++ b/lib/aethyr/core/objects/attributes/blind.rb
@@ -1,5 +1,6 @@
-require 'aethyr/core/attributes/attribute'
+require 'aethyr/core/objects/attributes/attribute'
 require 'aethyr/core/objects/living'
+require 'aethyr/core/objects/traits/lexicon'
 
 class Blind < Attribute
   def initialize(attach_to)
@@ -14,5 +15,9 @@ class Blind < Attribute
 
   def pre_look(data)
     data[:can_look] = false
+
+    you_subj = @attached_to.noun(false, plurality: Lexicon::Plurality::SINGULAR, gramatical_person: Lexicon::GramaticalPerson::SECOND_PERSON, subjectivity: Lexicon::Subjectivity::SUBJECTIVE).capitalize
+    you_obj = @attached_to.noun(false, plurality: Lexicon::Plurality::SINGULAR, gramatical_person: Lexicon::GramaticalPerson::SECOND_PERSON, subjectivity: Lexicon::Subjectivity::OBJECTIVE)
+    data[:reason] = "#{you_subj} cannot see while #{you_obj} are blind"
   end
 end
diff --git a/lib/aethyr/core/objects/game_object.rb b/lib/aethyr/core/objects/game_object.rb
index f736542ee9ea1a34afe7504949aa5c3619ff978b..b730ba25b586c2ed42505dc02c3ffd2d0b031f17 100644
--- a/lib/aethyr/core/objects/game_object.rb
+++ b/lib/aethyr/core/objects/game_object.rb
@@ -1,14 +1,14 @@
 require 'aethyr/core/util/publisher'
 require 'aethyr/core/util/log'
 require 'aethyr/core/objects/inventory'
-require 'aethyr/core/objects/traits/pronoun'
+require 'aethyr/core/objects/traits/lexicon'
 require 'aethyr/core/util/guid'
 require 'aethyr/core/objects/info/info'
 require 'aethyr/core/event'
 
 #Base class for all game objects, including players. Should be subclassed to do anything useful.
 class GameObject < Publisher
-  include Pronoun
+  include Lexicon
 
   attr_reader :short_desc, :game_object_id, :alt_names, :generic, :article, :sex, :show_in_look, :actions, :balance, :admin, :manager
   attr_accessor :container, :show_in_look, :actions, :pose, :visible, :comment, :movable, :quantity, :info
@@ -37,6 +37,13 @@ class GameObject < Publisher
     @generic = generic
     #The sex of the object
     @sex = sex
+    if @sex == 'm'
+      @gender = Lexicon::Gender::MASCULINE
+    elsif @sex == 'f'
+      @gender = Lexicon::Gender::FEMININE
+    else
+      @gender = Lexicon::Gender::NEUTER
+    end
     #The article of the object ('a','an',etc)
     @article = article
     @visible = true
diff --git a/lib/aethyr/core/objects/traits/lexicon.rb b/lib/aethyr/core/objects/traits/lexicon.rb
index c56354a37733607a862bd94e4342b7bd82d1d492..1f9237c718e69162ec819bdc81c821fac9ed8d5d 100644
--- a/lib/aethyr/core/objects/traits/lexicon.rb
+++ b/lib/aethyr/core/objects/traits/lexicon.rb
@@ -1,109 +1,276 @@
-module Lexicon
-  Genders = Struct(:male, :female, :neuter, keyword_init: true)
-  Plurality = Struct(:singular, :plural, keyword_init: true)
-  Subjectivity = Struct(:subjective, :objective, :reflective, keyword_init: true)
-  Posessiveness = Struct(:posessive, :nonposessive)
-  Determiners = Struct(:articles, :demonstratives, :posessive, :quantifier, keyword_init: true)
-  Parts = Struct(:adjective, :pronoun, :noun, :verb, :adverb, :conjunction, :interjection, :preposition, keyword_init: true)
-  Directness = Struct(:direct, :indirect, keyword_init: true)
-  GramaticalPerson = Struct(:first_person, :second_person, :third_person, :fourth_person)
-
-  GramaticalPerson.new(
-    first_person: Subjectivity.new(
-      subjective: Plurality.new(
-        singular: 'I',
-        plural: 'we'
-      ),
-      objective: Plurality.new(
-        singular: 'me',
-        plural: 'us'
-      ),
-      reflexive: Plurality.new(
-        singular: 'myself',
-        plural: 'ourselves'
-      )
-    )
-  )
+require 'set'
 
+module Lexicon
   module Gender
-    MASCULIN = :masculin
-    FEMANINE = :femanine
+    MASCULINE = :masculine
+    FEMININE = :feminine
     NEUTER = :neuter
   end
+  GENDERS = Set[Gender::MASCULINE, Gender::FEMININE, Gender::NEUTER]
+  GENDERS.freeze
 
   module Plurality
     PLURAL = :plural
     SINGULAR = :singular
   end
+  PLURALITIES = Set[Plurality::PLURAL, Plurality::SINGULAR]
+  PLURALITIES.freeze
 
   module GramaticalPerson
     FIRST_PERSON = :first_person
     SECOND_PERSON = :second_person
     THIRD_PERSON = :third_person
-    FOURTH_PERSON = :fourth_person
-    INTERROGATIVE = : :interrogative
+    INDIRECT = :indirect
+    INTERROGATIVE = :interrogative
   end
+  GRAMATICAL_PERSONS = Set[GramaticalPerson::FIRST_PERSON, GramaticalPerson::SECOND_PERSON, GramaticalPerson::THIRD_PERSON, GramaticalPerson::INDIRECT, GramaticalPerson::INTERROGATIVE]
+  GRAMATICAL_PERSONS.freeze
 
   module Subjectivity
     OBJECTIVE = :objective
     SUBJECTIVE = :subjective
   end
+  SUBJECTIVITIES = Set[Subjectivity::OBJECTIVE, Subjectivity::SUBJECTIVE]
+  SUBJECTIVITIES.freeze
 
   module Relation
-    NONE = :none
-    REFLECTIVE = :reflective
+    REFLEXIVE = :reflexive
     POSSESSIVE = :possessive
   end
+  RELATIONS = Set[Relation::REFLEXIVE, Relation::POSSESSIVE]
+  RELATIONS.freeze
+
+  module Quantifier
+    ONE = :one
+    ANY = :any
+    SOME = :some
+  end
+  QUANTIFIERS = Set[Quantifier::ONE, Quantifier::ANY, Quantifier::SOME]
+  QUANTIFIERS.freeze
 
   module Definitive
     DEFINITE = :definite
     INDEFINITE = :indefinite
   end
+  DEFINITIVES = Set[Definitive::DEFINITE, Definitive::INDEFINITE]
+  DEFINITIVES.freeze
+
+  module Classifier
+    PLURALITY = :plurality
+    GRAMATICAL_PERSON = :gramatical_person
+    RELATION = :relation
+    SUBJECTIVITY = :subjectivity
+    QUANTIFIER = :quantifier
+    GENDER = :gender
+  end
+  CLASSIFIERS = {Classifier::PLURALITY => PLURALITIES, Classifier::GRAMATICAL_PERSON => GRAMATICAL_PERSONS, Classifier::RELATION => RELATIONS, Classifier::SUBJECTIVITY => SUBJECTIVITIES, Classifier::QUANTIFIER => QUANTIFIERS, Classifier::GENDER => GENDERS}
+  CLASSIFIERS.freeze
+
+  Pluralities = Struct.new(Plurality::SINGULAR, Plurality::PLURAL, keyword_init: true)
+  GramaticalPersons = Struct.new(GramaticalPerson::FIRST_PERSON, GramaticalPerson::SECOND_PERSON, GramaticalPerson::THIRD_PERSON, GramaticalPerson::INDIRECT, GramaticalPerson::INTERROGATIVE, keyword_init: true)
+  Relations = Struct.new(Relation::POSSESSIVE, Relation::REFLEXIVE, keyword_init: true)
+  Subjectivities = Struct.new(Subjectivity::OBJECTIVE, Subjectivity::SUBJECTIVE, keyword_init: true)
+  Quantifiers = Struct.new(Quantifier::ONE, Quantifier::ANY, Quantifier::SOME, keyword_init: true)
+  Genders = Struct.new(Gender::MASCULINE, Gender::FEMININE, Gender::NEUTER, keyword_init: true)
+
+  Vocab = Struct.new(:word, Classifier::PLURALITY, Classifier::GRAMATICAL_PERSON, Classifier::RELATION, Classifier::SUBJECTIVITY, Classifier::QUANTIFIER, Classifier::GENDER, keyword_init: true)
+  PronounLexicon = Struct.new(Classifier::PLURALITY, Classifier::GRAMATICAL_PERSON, Classifier::RELATION, Classifier::SUBJECTIVITY, Classifier::QUANTIFIER, Classifier::GENDER, keyword_init: true)
+
+
+  DEFAULT_VOCABULARY = [
+    # First person, singular
+    Vocab.new(word: 'I',             plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::FIRST_PERSON,  relation: :na,                  subjectivity: Subjectivity::SUBJECTIVE, quantifier: :na),
+    Vocab.new(word: 'me',            plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::FIRST_PERSON,  relation: :na,                  subjectivity: Subjectivity::OBJECTIVE,  quantifier: :na),
+    Vocab.new(word: 'my',            plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::FIRST_PERSON,  relation: Relation::POSSESSIVE, subjectivity: Subjectivity::SUBJECTIVE, quantifier: :na),
+    Vocab.new(word: 'mine',          plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::FIRST_PERSON,  relation: Relation::POSSESSIVE, subjectivity: Subjectivity::OBJECTIVE,  quantifier: :na),
+    Vocab.new(word: 'myself',        plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::FIRST_PERSON,  relation: Relation::REFLEXIVE,  subjectivity: Subjectivity::OBJECTIVE,  quantifier: :na),
+    # Second person, singular/plural
+    Vocab.new(word: 'you',                                           gramatical_person: GramaticalPerson::SECOND_PERSON, relation: :na,                                                          quantifier: :na),
+    Vocab.new(word: 'your',                                          gramatical_person: GramaticalPerson::SECOND_PERSON, relation: Relation::POSSESSIVE, subjectivity: Subjectivity::SUBJECTIVE, quantifier: :na),
+    Vocab.new(word: 'yours',                                         gramatical_person: GramaticalPerson::SECOND_PERSON, relation: Relation::POSSESSIVE, subjectivity: Subjectivity::OBJECTIVE,  quantifier: :na),
+    Vocab.new(word: 'yourself',      plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::SECOND_PERSON, relation: Relation::REFLEXIVE,  subjectivity: Subjectivity::OBJECTIVE,  quantifier: :na),
+    Vocab.new(word: 'yourselves',    plurality: Plurality::PLURAL,   gramatical_person: GramaticalPerson::SECOND_PERSON, relation: Relation::REFLEXIVE,  subjectivity: Subjectivity::OBJECTIVE,  quantifier: :na),
+    # Third person, singular, feminine
+    Vocab.new(word: 'she',           plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::THIRD_PERSON,  relation: :na,                  subjectivity: Subjectivity::SUBJECTIVE, quantifier: :na, gender: Gender::FEMININE),
+    Vocab.new(word: 'her',           plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::THIRD_PERSON,  relation: :na,                  subjectivity: Subjectivity::OBJECTIVE,  quantifier: :na, gender: Gender::FEMININE),
+    Vocab.new(word: 'her',           plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::THIRD_PERSON,  relation: Relation::POSSESSIVE, subjectivity: Subjectivity::SUBJECTIVE, quantifier: :na, gender: Gender::FEMININE),
+    Vocab.new(word: 'hers',          plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::THIRD_PERSON,  relation: Relation::POSSESSIVE, subjectivity: Subjectivity::OBJECTIVE,  quantifier: :na, gender: Gender::FEMININE),
+    Vocab.new(word: 'herself',       plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::THIRD_PERSON,  relation: Relation::REFLEXIVE,  subjectivity: Subjectivity::OBJECTIVE,  quantifier: :na, gender: Gender::FEMININE),
+    # Third person, singular, masculine
+    Vocab.new(word: 'he',            plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::THIRD_PERSON,  relation: :na,                  subjectivity: Subjectivity::SUBJECTIVE, quantifier: :na, gender: Gender::MASCULINE),
+    Vocab.new(word: 'him',           plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::THIRD_PERSON,  relation: :na,                  subjectivity: Subjectivity::OBJECTIVE,  quantifier: :na, gender: Gender::MASCULINE),
+    Vocab.new(word: 'his',           plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::THIRD_PERSON,  relation: Relation::POSSESSIVE,                                         quantifier: :na, gender: Gender::MASCULINE),
+    Vocab.new(word: 'himself',       plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::THIRD_PERSON,  relation: Relation::REFLEXIVE,  subjectivity: Subjectivity::OBJECTIVE,  quantifier: :na, gender: Gender::MASCULINE),
+    # Third person, singular, neuter
+    Vocab.new(word: 'it',            plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::THIRD_PERSON,  relation: :na,                                                          quantifier: :na, gender: Gender::NEUTER),
+    Vocab.new(word: 'its',           plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::THIRD_PERSON,  relation: Relation::POSSESSIVE,                                         quantifier: :na, gender: Gender::NEUTER),
+    Vocab.new(word: 'itself',        plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::THIRD_PERSON,  relation: Relation::REFLEXIVE,  subjectivity: Subjectivity::OBJECTIVE,  quantifier: :na, gender: Gender::NEUTER),
+    #First person, plural
+    Vocab.new(word: 'we',            plurality: Plurality::PLURAL,   gramatical_person: GramaticalPerson::FIRST_PERSON,  relation: :na,                  subjectivity: Subjectivity::SUBJECTIVE, quantifier: :na),
+    Vocab.new(word: 'us',            plurality: Plurality::PLURAL,   gramatical_person: GramaticalPerson::FIRST_PERSON,  relation: :na,                  subjectivity: Subjectivity::OBJECTIVE,  quantifier: :na),
+    Vocab.new(word: 'our',           plurality: Plurality::PLURAL,   gramatical_person: GramaticalPerson::FIRST_PERSON,  relation: Relation::POSSESSIVE, subjectivity: Subjectivity::SUBJECTIVE, quantifier: :na),
+    Vocab.new(word: 'ours',          plurality: Plurality::PLURAL,   gramatical_person: GramaticalPerson::FIRST_PERSON,  relation: Relation::POSSESSIVE, subjectivity: Subjectivity::OBJECTIVE,  quantifier: :na),
+    Vocab.new(word: 'ourselves',     plurality: Plurality::PLURAL,   gramatical_person: GramaticalPerson::FIRST_PERSON,  relation: Relation::REFLEXIVE,  subjectivity: Subjectivity::OBJECTIVE,  quantifier: :na),
+    # Third person, plural
+    Vocab.new(word: 'they',          plurality: Plurality::PLURAL,   gramatical_person: GramaticalPerson::THIRD_PERSON,  relation: :na,                  subjectivity: Subjectivity::SUBJECTIVE, quantifier: :na),
+    Vocab.new(word: 'them',          plurality: Plurality::PLURAL,   gramatical_person: GramaticalPerson::THIRD_PERSON,  relation: :na,                  subjectivity: Subjectivity::OBJECTIVE,  quantifier: :na),
+    Vocab.new(word: 'their',         plurality: Plurality::PLURAL,   gramatical_person: GramaticalPerson::THIRD_PERSON,  relation: Relation::POSSESSIVE, subjectivity: Subjectivity::SUBJECTIVE, quantifier: :na),
+    Vocab.new(word: 'theirs',        plurality: Plurality::PLURAL,   gramatical_person: GramaticalPerson::THIRD_PERSON,  relation: Relation::POSSESSIVE, subjectivity: Subjectivity::OBJECTIVE,  quantifier: :na),
+    Vocab.new(word: 'themselves',    plurality: Plurality::PLURAL,   gramatical_person: GramaticalPerson::THIRD_PERSON,  relation: Relation::REFLEXIVE,  subjectivity: Subjectivity::OBJECTIVE,  quantifier: :na),
+    # Indirect person, singular, masculine
+    Vocab.new(word: 'one',           plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::INDIRECT,      relation: :na,                                                          quantifier: Quantifier::ONE,  gender: Gender::MASCULINE),
+    Vocab.new(word: 'one\'s',        plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::INDIRECT,      relation: Relation::POSSESSIVE, subjectivity: Subjectivity::SUBJECTIVE, quantifier: Quantifier::ONE,  gender: Gender::MASCULINE),
+    Vocab.new(word: 'ones',          plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::INDIRECT,      relation: Relation::POSSESSIVE, subjectivity: Subjectivity::OBJECTIVE,  quantifier: Quantifier::ONE,  gender: Gender::MASCULINE),
+    Vocab.new(word: 'oneself',       plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::INDIRECT,      relation: Relation::REFLEXIVE,  subjectivity: Subjectivity::OBJECTIVE,  quantifier: Quantifier::ONE,  gender: Gender::MASCULINE),
+    Vocab.new(word: 'someone',       plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::INDIRECT,      relation: :na,                                                          quantifier: Quantifier::SOME, gender: Gender::MASCULINE),
+    Vocab.new(word: 'someone\'s',    plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::INDIRECT,      relation: Relation::POSSESSIVE, subjectivity: Subjectivity::SUBJECTIVE, quantifier: Quantifier::SOME, gender: Gender::MASCULINE),
+    Vocab.new(word: 'someones',      plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::INDIRECT,      relation: Relation::POSSESSIVE, subjectivity: Subjectivity::OBJECTIVE,  quantifier: Quantifier::SOME, gender: Gender::MASCULINE),
+    Vocab.new(word: 'oneself',       plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::INDIRECT,      relation: Relation::REFLEXIVE,  subjectivity: Subjectivity::OBJECTIVE,  quantifier: Quantifier::SOME, gender: Gender::MASCULINE),
+    Vocab.new(word: 'anyone',        plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::INDIRECT,      relation: :na,                                                          quantifier: Quantifier::ANY,  gender: Gender::MASCULINE),
+    Vocab.new(word: 'anyone\'s',     plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::INDIRECT,      relation: Relation::POSSESSIVE, subjectivity: Subjectivity::SUBJECTIVE, quantifier: Quantifier::ANY,  gender: Gender::MASCULINE),
+    Vocab.new(word: 'anyones',       plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::INDIRECT,      relation: Relation::POSSESSIVE, subjectivity: Subjectivity::OBJECTIVE,  quantifier: Quantifier::ANY,  gender: Gender::MASCULINE),
+    Vocab.new(word: 'oneself',       plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::INDIRECT,      relation: Relation::REFLEXIVE,  subjectivity: Subjectivity::OBJECTIVE,  quantifier: Quantifier::ANY,  gender: Gender::MASCULINE),
+    # Indirect person, singular, feminine (same as masculine)
+    Vocab.new(word: 'one',           plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::INDIRECT,      relation: :na,                                                          quantifier: Quantifier::ONE,  gender: Gender::FEMININE),
+    Vocab.new(word: 'one\'s',        plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::INDIRECT,      relation: Relation::POSSESSIVE, subjectivity: Subjectivity::SUBJECTIVE, quantifier: Quantifier::ONE,  gender: Gender::FEMININE),
+    Vocab.new(word: 'ones',          plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::INDIRECT,      relation: Relation::POSSESSIVE, subjectivity: Subjectivity::OBJECTIVE,  quantifier: Quantifier::ONE,  gender: Gender::FEMININE),
+    Vocab.new(word: 'oneself',       plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::INDIRECT,      relation: Relation::REFLEXIVE,  subjectivity: Subjectivity::OBJECTIVE,  quantifier: Quantifier::ONE,  gender: Gender::FEMININE),
+    Vocab.new(word: 'someone',       plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::INDIRECT,      relation: :na,                                                          quantifier: Quantifier::SOME, gender: Gender::FEMININE),
+    Vocab.new(word: 'someone\'s',    plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::INDIRECT,      relation: Relation::POSSESSIVE, subjectivity: Subjectivity::SUBJECTIVE, quantifier: Quantifier::SOME, gender: Gender::FEMININE),
+    Vocab.new(word: 'someones',      plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::INDIRECT,      relation: Relation::POSSESSIVE, subjectivity: Subjectivity::OBJECTIVE,  quantifier: Quantifier::SOME, gender: Gender::FEMININE),
+    Vocab.new(word: 'oneself',       plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::INDIRECT,      relation: Relation::REFLEXIVE,  subjectivity: Subjectivity::OBJECTIVE,  quantifier: Quantifier::SOME, gender: Gender::FEMININE),
+    Vocab.new(word: 'anyone',        plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::INDIRECT,      relation: :na,                                                          quantifier: Quantifier::ANY,  gender: Gender::FEMININE),
+    Vocab.new(word: 'anyone\'s',     plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::INDIRECT,      relation: Relation::POSSESSIVE, subjectivity: Subjectivity::SUBJECTIVE, quantifier: Quantifier::ANY,  gender: Gender::FEMININE),
+    Vocab.new(word: 'anyones',       plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::INDIRECT,      relation: Relation::POSSESSIVE, subjectivity: Subjectivity::OBJECTIVE,  quantifier: Quantifier::ANY,  gender: Gender::FEMININE),
+    Vocab.new(word: 'oneself',       plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::INDIRECT,      relation: Relation::REFLEXIVE,  subjectivity: Subjectivity::OBJECTIVE,  quantifier: Quantifier::ANY,  gender: Gender::FEMININE),
+    # Indirect person, singular, neuter
+    Vocab.new(word: 'one',           plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::INDIRECT,      relation: :na,                                                          quantifier: Quantifier::ONE,  gender: Gender::NEUTER),
+    Vocab.new(word: 'one\'s',        plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::INDIRECT,      relation: Relation::POSSESSIVE, subjectivity: Subjectivity::SUBJECTIVE, quantifier: Quantifier::ONE,  gender: Gender::NEUTER),
+    Vocab.new(word: 'ones',          plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::INDIRECT,      relation: Relation::POSSESSIVE, subjectivity: Subjectivity::OBJECTIVE,  quantifier: Quantifier::ONE,  gender: Gender::NEUTER),
+    Vocab.new(word: 'oneself',       plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::INDIRECT,      relation: Relation::REFLEXIVE,  subjectivity: Subjectivity::OBJECTIVE,  quantifier: Quantifier::ONE,  gender: Gender::NEUTER),
+    Vocab.new(word: 'something',     plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::INDIRECT,      relation: :na,                                                          quantifier: Quantifier::SOME, gender: Gender::NEUTER),
+    Vocab.new(word: 'something\'s',  plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::INDIRECT,      relation: Relation::POSSESSIVE, subjectivity: Subjectivity::SUBJECTIVE, quantifier: Quantifier::SOME, gender: Gender::NEUTER),
+    Vocab.new(word: 'somethings',    plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::INDIRECT,      relation: Relation::POSSESSIVE, subjectivity: Subjectivity::OBJECTIVE,  quantifier: Quantifier::SOME, gender: Gender::NEUTER),
+    Vocab.new(word: 'oneself',       plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::INDIRECT,      relation: Relation::REFLEXIVE,  subjectivity: Subjectivity::OBJECTIVE,  quantifier: Quantifier::SOME, gender: Gender::NEUTER),
+    Vocab.new(word: 'anything',      plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::INDIRECT,      relation: :na,                                                          quantifier: Quantifier::ANY,  gender: Gender::NEUTER),
+    Vocab.new(word: 'anything\'s',   plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::INDIRECT,      relation: Relation::POSSESSIVE, subjectivity: Subjectivity::SUBJECTIVE, quantifier: Quantifier::ANY,  gender: Gender::NEUTER),
+    Vocab.new(word: 'anythings',     plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::INDIRECT,      relation: Relation::POSSESSIVE, subjectivity: Subjectivity::OBJECTIVE,  quantifier: Quantifier::ANY,  gender: Gender::NEUTER),
+    Vocab.new(word: 'oneself',       plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::INDIRECT,      relation: Relation::REFLEXIVE,  subjectivity: Subjectivity::OBJECTIVE,  quantifier: Quantifier::ANY,  gender: Gender::NEUTER),
+    # Indirect person, plural, feminine
+    Vocab.new(word: 'everyone',      plurality: Plurality::PLURAL,   gramatical_person: GramaticalPerson::INDIRECT,      relation: :na,                                                          quantifier: :na,              gender: Gender::FEMININE),
+    Vocab.new(word: 'everyone\'s',   plurality: Plurality::PLURAL,   gramatical_person: GramaticalPerson::INDIRECT,      relation: Relation::POSSESSIVE, subjectivity: Subjectivity::SUBJECTIVE, quantifier: :na,              gender: Gender::FEMININE),
+    Vocab.new(word: 'everyones',     plurality: Plurality::PLURAL,   gramatical_person: GramaticalPerson::INDIRECT,      relation: Relation::POSSESSIVE, subjectivity: Subjectivity::OBJECTIVE,  quantifier: :na,              gender: Gender::FEMININE),
+    Vocab.new(word: 'oneself',       plurality: Plurality::PLURAL,   gramatical_person: GramaticalPerson::INDIRECT,      relation: Relation::REFLEXIVE,  subjectivity: Subjectivity::OBJECTIVE,  quantifier: :na,              gender: Gender::FEMININE),
+    # Indirect person, plural, masculine (same as feminine)
+    Vocab.new(word: 'everyone',      plurality: Plurality::PLURAL,   gramatical_person: GramaticalPerson::INDIRECT,      relation: :na,                                                          quantifier: :na,              gender: Gender::MASCULINE),
+    Vocab.new(word: 'everyone\'s',   plurality: Plurality::PLURAL,   gramatical_person: GramaticalPerson::INDIRECT,      relation: Relation::POSSESSIVE, subjectivity: Subjectivity::SUBJECTIVE, quantifier: :na,              gender: Gender::MASCULINE),
+    Vocab.new(word: 'everyones',     plurality: Plurality::PLURAL,   gramatical_person: GramaticalPerson::INDIRECT,      relation: Relation::POSSESSIVE, subjectivity: Subjectivity::OBJECTIVE,  quantifier: :na,              gender: Gender::MASCULINE),
+    Vocab.new(word: 'oneself',       plurality: Plurality::PLURAL,   gramatical_person: GramaticalPerson::INDIRECT,      relation: Relation::REFLEXIVE,  subjectivity: Subjectivity::OBJECTIVE,  quantifier: :na,              gender: Gender::MASCULINE),
+    # Indirect person, plural, neuter
+    Vocab.new(word: 'everything',    plurality: Plurality::PLURAL,   gramatical_person: GramaticalPerson::INDIRECT,      relation: :na,                                                          quantifier: :na,              gender: Gender::NEUTER),
+    Vocab.new(word: 'everything\'s', plurality: Plurality::PLURAL,   gramatical_person: GramaticalPerson::INDIRECT,      relation: Relation::POSSESSIVE, subjectivity: Subjectivity::SUBJECTIVE, quantifier: :na,              gender: Gender::NEUTER),
+    Vocab.new(word: 'everythings',   plurality: Plurality::PLURAL,   gramatical_person: GramaticalPerson::INDIRECT,      relation: Relation::POSSESSIVE, subjectivity: Subjectivity::OBJECTIVE,  quantifier: :na,              gender: Gender::NEUTER),
+    Vocab.new(word: 'oneself',       plurality: Plurality::PLURAL,   gramatical_person: GramaticalPerson::INDIRECT,      relation: Relation::REFLEXIVE,  subjectivity: Subjectivity::OBJECTIVE,  quantifier: :na,              gender: Gender::NEUTER),
+    # Interrogative person, singular/plural
+    Vocab.new(word: 'who',                                           gramatical_person: GramaticalPerson::INTERROGATIVE, relation: :na,                  subjectivity: Subjectivity::OBJECTIVE,  quantifier: :na),
+    Vocab.new(word: 'whom',                                          gramatical_person: GramaticalPerson::INTERROGATIVE, relation: :na,                  subjectivity: Subjectivity::SUBJECTIVE, quantifier: :na),
+    Vocab.new(word: 'whose',                                         gramatical_person: GramaticalPerson::INTERROGATIVE, relation: Relation::POSSESSIVE,                                         quantifier: :na),
+  ]
+
+  def Lexicon.construct_pronoun_lexicon(vocabulary)
+    lexicon = PronounLexicon.new(
+      plurality: Pluralities.new(singular: Set[], plural: Set[]),
+      gramatical_person: GramaticalPersons.new(first_person: Set[], second_person: Set[], third_person: Set[], indirect: Set[], interrogative: Set[]),
+      relation: Relations.new(possessive: Set[], reflexive: Set[]),
+      subjectivity: Subjectivities.new(objective: Set[], subjective: Set[]),
+      quantifier: Quantifiers.new(one: Set[], some: Set[], any: Set[]),
+      gender: Genders.new(masculine: Set[], feminine: Set[], neuter: Set[])
+    )
+
+    vocabulary.each do |vocab_word|
+      word_text = vocab_word.word
+
+      vocab_word.each_pair do |key, value|
+        next if key == :word
+
+        if value.nil?
+          CLASSIFIERS[key].each do |inferred_value|
+            lexicon[key][inferred_value].add(word_text)
+          end
+        else
+          lexicon[key][value].add(word_text) if value != :na
+        end
+      end
+    end
+
+    lexicon.each do |classifier|
+      classifier.each do |class_set|
+        class_set.freeze
+      end
+      classifier.freeze
+    end
+    lexicon.freeze
+
+    return lexicon
+  end
+
+  @@PRONOUN_LEXICON = Lexicon::construct_pronoun_lexicon(Lexicon::DEFAULT_VOCABULARY)
 
-  Vocab = Struct.new(:word, :gender, :plurality, :gramatical_person, :subjectivity, keyword_init: true)
+  def noun(proper = true, plurality: nil, gramatical_person: nil, relation: nil, subjectivity: nil, quantifier: nil)
+    if proper
+      final_noun = @name
+      if plurality == Plurality::PLURAL
+        final_noun += 's'
+        final_noun += '\'' if relation == Relation::POSSESSIVE
+      elsif relation == Relation::POSSESSIVE
+        final_nount += '\'s'
+      end
+      return final_noun
+    end
 
-  def construct_lexicon(vocabulary)
+    noun_set = @@PRONOUN_LEXICON.gender[@gender]
+    noun_set = noun_set.intersection(@@PRONOUN_LEXICON.plurality[plurality]) if not plurality.nil?
+    noun_set = noun_set.intersection(@@PRONOUN_LEXICON.gramatical_person[gramatical_person]) if not gramatical_person.nil?
+    noun_set = noun_set.intersection(@@PRONOUN_LEXICON.relation[relation]) if not relation.nil?
+    noun_set = noun_set.intersection(@@PRONOUN_LEXICON.subjectivity[subjectivity]) if not subjectivity.nil?
+    noun_set = noun_set.intersection(@@PRONOUN_LEXICON.quantifier[quantifier]) if not quantifier.nil?
+    noun_set = noun_set.intersection(@@PRONOUN_LEXICON.relation[relation]) if not relation.nil?
+
+    if relation.nil?
+      RELATIONS.each do |subtract_relation|
+        noun_set = noun_set.subtract(@@PRONOUN_LEXICON.relation[subtract_relation])
+      end
+    end
+
+    if quantifier.nil?
+      QUANTIFIERS.each do |subtract_quantifier|
+        noun_set = noun_set.subtract(@@PRONOUN_LEXICON.quantifier[subtract_quantifier])
+      end
+    end
+
+    if noun_set.size() != 1
+      raise ArgumentError "filters applied to produce noun did not produce a single unique noun, possible nouns: #{noun_set}"
+    end
+
+    noun_set.each do |result|
+      return result
+    end
   end
 
-  construct_lexicon([
-                     Vocab.new(word: 'I',        plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::FIRST_PERSON,  relation: Relation::NONE,       subjectivity: Subjectivity::SUBJECTIVE),
-                     Vocab.new(word: 'me',       plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::FIRST_PERSON,  relation: Relation::NONE,       subjectivity: Subjectivity::OBJECTIVE),
-                     Vocab.new(word: 'my',       plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::FIRST_PERSON,  relation: Relation::POSSESSIVE, subjectivity: Subjectivity::SUBJECTIVE),
-                     Vocab.new(word: 'mine',     plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::FIRST_PERSON,  relation: Relation::POSSESSIVE, subjectivity: Subjectivity::OBJECTIVE),
-                     Vocab.new(word: 'myself',   plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::FIRST_PERSON,  relation: Relation::REFLEXIVE,  subjectivity: Subjectivity::OBJECTIVE),
-                     Vocab.new(word: 'you',      plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::SECOND_PERSON, relation: Relation::NONE),
-                     Vocab.new(word: 'your',     plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::SECOND_PERSON, relation: Relation::POSSESSIVE, subjectivity: Subjectivity::SUBJECTIVE),
-                     Vocab.new(word: 'yours',    plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::SECOND_PERSON, relation: Relation::POSSESSIVE, subjectivity: Subjectivity::OBJECTIVE),
-                     Vocab.new(word: 'yourself', plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::SECOND_PERSON, relation: Relation::REFLECTIVE, subjectivity: Subjectivity::OBJECTIVE),
-                     Vocab.new(word: 'she',      plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::THIRD_PERSON,  relation: Relation::NONE,       subjectivity: Subjectivity::SUBJECTIVE, gender: Gender::FEMANINE),
-                     Vocab.new(word: 'her',      plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::THIRD_PERSON,  relation: Relation::NONE,       subjectivity: Subjectivity::OBJECTIVE,  gender: Gender::FEMANINE),
-                     Vocab.new(word: 'her',      plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::THIRD_PERSON,  relation: Relation::POSSESSIVE, subjectivity: Subjectivity::SUBJECTIVE, gender: Gender::FEMANINE),
-                     Vocab.new(word: 'hers',     plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::THIRD_PERSON,  relation: Relation::POSSESSIVE, subjectivity: Subjectivity::OBJECTIVE,  gender: Gender::FEMANINE),
-                     Vocab.new(word: 'herself',  plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::THIRD_PERSON,  relation: Relation::REFLECTIVE, subjectivity: Subjectivity::OBJECTIVE,  gender: Gender::FEMANINE),
-                     Vocab.new(word: 'he',       plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::THIRD_PERSON,  relation: Relation::NONE,       subjectivity: Subjectivity::SUBJECTIVE, gender: Gender::MASCULIN),
-                     Vocab.new(word: 'him',      plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::THIRD_PERSON,  relation: Relation::NONE,       subjectivity: Subjectivity::OBJECTIVE,  gender: Gender::MASCULIN),
-                     Vocab.new(word: 'his',      plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::THIRD_PERSON,  relation: Relation::POSSESSIVE,                                         gender: Gender::MASCULIN),
-                     Vocab.new(word: 'himself',  plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::THIRD_PERSON,  relation: Relation::REFLECTIVE, subjectivity: Subjectivity::OBJECTIVE,  gender: Gender::MASCULIN),
-                     Vocab.new(word: 'one',      plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::FOURTH_PERSON, relation: Relation::NONE,       subjectivity: Subjectivity::SUBJECTIVE),
-                     Vocab.new(word: 'oneself',  plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::FOURTH_PERSON, relation: Relation::REFLECTIVE, subjectivity: Subjectivity::OBJECTIVE),
-                     Vocab.new(word: 'who',      plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::INTERROGATIVE, relation: Relation::NONE,       subjectivity: Subjectivity::OBJECTIVE),
-                     Vocab.new(word: 'whom',     plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::INTERROGATIVE, relation: Relation::NONE,       subjectivity: Subjectivity::SUBJECTIVE),
-                     Vocab.new(word: 'whose',    plurality: Plurality::SINGULAR, gramatical_person: GramaticalPerson::INTERROGATIVE, relation: Relation::POSSESSIVE),
-                    ])
+  # For legacy purposes
+  def pronoun(type = :normal)
+    if type == :normal
+      return noun(false, plurality: Plurality::Singular, gramatical_person: GramaticalPerson::THIRD_PERSON, subjectivity: Subjectivity::SUBJECTIVE )
+    elsif type == :reflexive
+      return noun(false, plurality: Plurality::Singular, gramatical_person: GramaticalPerson::THIRD_PERSON, relation: Relation::REFLEXIVE )
+    elsif type == :possessive
+      return noun(false, plurality: Plurality::Singular, gramatical_person: GramaticalPerson::THIRD_PERSON, relation: Relation::POSSESSIVE, subjectivity: Subjectivity::SUBJECTIVE )
+    elsif type == :objective
+      return noun(false, plurality: Plurality::Singular, gramatical_person: GramaticalPerson::THIRD_PERSON, subjectivity: Subjectivity::OBJECTIVE )
+    elsif type == :obj_poss
+      return noun(false, plurality: Plurality::Singular, gramatical_person: GramaticalPerson::THIRD_PERSON, relation: Relation::POSSESSIVE, subjectivity: Subjectivity::OBJECTIVE )
+    else
+      raise ArgumentError "Unrecognized typed #{type}"
+    end
+  end
 end
-
-# interrogative [subjective] pronounds:who, what, why, where, when, whatever
-# interrogative [objective] pronounds:whom, what, why, where, when, whatever
-# indefinate pronounds: anything, anybody, anyone, something, somebody, someone, nothing, nobody, none, no one
-# someone, something
-# direct-reflexive-pronoun: himself
-# indirect-reflective-pronoun: me
-
-# reflexive [objective] pronouns: myself, yourself, himself, herself, itself, ourselves, yourselves, themselves.
-# possessive [subjective] adjective/determiner: my, your, his, her, its, our, their
-# possessive [objective]  pronoun: mine, yours, his, hers, its, ours, theirs
-# objective pronoun: me, us, you, him, her, it, them, and whom
-# subjective pronoun:  I, you, we, he, she, it, they, and who
-
-# Determiners: this, the, my
-# Determiners: articles (definite: the, indefinite: a/an), demonstratives(this, that), possessive determines (my, their), quantifiers (many, all, no. every).
diff --git a/lib/aethyr/core/objects/traits/location.rb b/lib/aethyr/core/objects/traits/location.rb
index 8045891d44d9ab0e7d9faad7941e818c71555735..bc6dcf0a25a403c21393a0108cfef13b48173f45 100644
--- a/lib/aethyr/core/objects/traits/location.rb
+++ b/lib/aethyr/core/objects/traits/location.rb
@@ -2,7 +2,6 @@ require 'aethyr/core/objects/info/terrain'
 
 require 'aethyr/core/util/log'
 require 'aethyr/core/objects/inventory'
-require 'aethyr/core/objects/traits/pronoun'
 require 'aethyr/core/util/guid'
 require 'aethyr/core/objects/info/info'
 
diff --git a/lib/aethyr/core/objects/traits/pronoun.rb b/lib/aethyr/core/objects/traits/pronoun.rb
deleted file mode 100644
index 5cd32115f5a129419c7e7c8a90563d1123c9249c..0000000000000000000000000000000000000000
--- a/lib/aethyr/core/objects/traits/pronoun.rb
+++ /dev/null
@@ -1,51 +0,0 @@
-#The Pronoun mixin provides the pronoun function, which gives the correct pronoun
-#based on the sex of the object.
-module Pronoun
-  @@pronouns = { :normal =>
-      { 'm' => 'he',
-      'f' => 'she',
-      'n' => 'it' },
-    :possessive =>
-      { 'm' => 'his',
-      'f' => 'her',
-      'n' => 'its' },
-    :objective =>
-      { 'm' => 'him',
-      'f' => 'her',
-      'n' => 'it' },
-    :reflexive =>
-      { 'm' => 'himself',
-      'f' => 'herself',
-      'n' => 'itself' },
-    :obj_poss =>
-      { 'm' => 'his',
-      'f' => 'hers',
-      'n' => 'its' }
-    }
-
-  #This is the only function of the Pronoun mixin. It returns the correct pronoun
-  #based on the sex of the object.
-  #Type is the type of pronoun desired.
-  #
-  # :normal for 'he', 'she', 'it'
-  #
-  # :possessive for 'his', 'her', 'its'
-  #
-  # :objective for 'him', 'her', 'it'
-  #
-  # :obj_poss for 'his', 'hers', 'its'
-  #
-  # :reflexive for 'himself', 'herself', 'itself'
-  def pronoun(type = :normal)
-    if @@pronouns[type]
-      if @@pronouns[type][@sex].nil?
-        log "What the heck."
-      else
-        return @@pronouns[type][@sex]
-      end
-    else
-      log "No such thing: #{type}"
-    end
-    ''
-  end
-end