BTW, is the following part necessary?

```ruby
          if val.is_a? Version
            @epoch = val.epoch
            @version = val.Version
            return
          end
```