The nested explicit returns make this a bit harder to read.  Could we use if/else?