Elegant recursive solution