I disagree, I believe that this is a statement saying that this calculator requires a shipping address to do anything at all. If anything is_package_shippable and country_weight_error should be brought up into the available? method as it does satisfy the responsibility of the availabile? method and isn't used anywhere else.

Currently the functionality is just hidden in the privates. Ideally IMO the available? method could be simplified to

```ruby
package.order.ship_address && acceptable_weight?(package) && !compute(package).nil?
```

It could be refactored further by not having to call compute to determine if the package is shippable.