More better:
```ruby
class Eng
  def self.handle(msg)
    lambda {
      return false unless i_should_handle?
      new(msg)
    }
  end
end

[ Eng.handle(msg), Percent.handle(msg), Raw.handle(msg) ].find &:call
```