Why can't this just return an Option? I've always hated the default behavior of `withName`. That way, you don't have the exception catching below.