El 'Retorno' omitido en Kotlin necesita código adicional. ¿Cómo arreglar eso?

Cuando codigo un Rx Observable en Java (7), es como sigue

private Observable observable = Observable.just("http://myurl.com/") .map(new Function<String, Person>() { @Override public Person apply(String url) throws Exception { Request request = new Request.Builder().url(url).build(); Call call = okHttpClient.newCall(request); Response response = call.execute(); if (response.isSuccessful()) { ResponseBody responseBody = response.body(); if (responseBody != null) { return Person.parseFrom(responseBody.byteStream()); } } return null; } }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()); 

Cuando lo convierto en Kotlin, es el siguiente:

 private val observable = Observable.just("http://myurl.com/") .map{ val request = Request.Builder().url(it).build() val call = okHttpClient.newCall(request) val response = call.execute() if (response.isSuccessful) { val responseBody = response.body() if (responseBody != null) { Person.parseFrom(responseBody.byteStream()) } else { null } } else { null } }.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()) 

En la versión de Kotlin, es posible que notes que tengo dos null . Pero en Java, podría evitar hacer eso, ya que podría tener una statement de retorno en la function de Mapa. ¿Cómo podría lograr eso en Kotlin también sin duplicar el null ?