On second thoughts I think it is more reasonable to require a cast than to have Connection extend Recoverable (since that's really not true) and extending NetworkConnection seems dubious since it is so much for internal use.