Why don't we use self.class.new here? Do we need to anonymize the class?