Good explanation. Minor nitpick (don't worry about changing it here) but in the future, interpolation is much faster than concatenation and it's more idiomatic.

```ruby
self.label = "#{label}_#{cp_id}" unless cp_id.blank?
```