Right, so I would move the lazy loading bit from `#locked_version` into the initializer:

```ruby
# initializer
@locked_version = Solve::Version.new(options[:locked_version]) if options[:locked_version]
```

```ruby
# new locked_version
def locked_version
  @locked_version ||= cached_cookbook.try(:version)
end
```