I did it that way partly because the calling code doesn't need to change as we test & expand the underneath stuff