Rather than casting the conversation to a concrete implementation (what happens if we were to start using a different implementation), you can add the findParticipant method to the interface. Might make sense to have it there anyways (but have it accept a full UserIdentifier rather than just the username).