What's wrong with collectFirst?