Abstracted back some of that for #82