diff --git a/lib/reek/smells/smell_repository.rb b/lib/reek/smells/smell_repository.rb
index <HASH>..<HASH> 100644
--- a/lib/reek/smells/smell_repository.rb
+++ b/lib/reek/smells/smell_repository.rb
@@ -17,10 +17,9 @@ module Reek
       def initialize(source_description: nil,
                      smell_types: self.class.smell_types,
                      configuration: Configuration::AppConfiguration.new)
-        @source_via      = source_description
-        @typed_detectors = nil
-        @configuration   = configuration
-        @smell_types     = smell_types
+        @source_via    = source_description
+        @configuration = configuration
+        @smell_types   = smell_types
 
         configuration.directive_for(source_via).each do |klass, config|
           configure klass, config
@@ -51,14 +50,12 @@ module Reek
 
       private
 
-      private_attr_reader :configuration, :source_via, :smell_types, :typed_detectors
+      private_attr_reader :configuration, :source_via, :smell_types
 
       def smell_listeners
-        unless typed_detectors
-          @typed_detectors = Hash.new { |hash, key| hash[key] = [] }
-          detectors.each_value { |detector| detector.register(typed_detectors) }
+        @smell_listeners ||= Hash.new { |hash, key| hash[key] = [] }.tap do |listeners|
+          detectors.each_value { |detector| detector.register(listeners) }
         end
-        typed_detectors
       end
     end
   end
SmellRepository: typed_detectors are (refactored) smell_listeners