@cored what about the following:

```ruby
attr_reader :total_score
private     :total_score

attr_reader :threshold
private     :threshold

attr_reader :files
private     :files

def self.call(config, project)
  new(config, ::Flay.expand_dirs_to_files(project.lib_dir).sort).call
end

def initialize(config, files)
  @total_score = config.total_score
  @threshold   = config.threshold
  @files       = files
end
```

This would allow you to do away with the two private `#total_score` and `#threshold` method definitions, and it would simplify the constructor, letting the `.call` method doing the necessary preparation (of inferring the files to process)