switch to a more explcit Builder data type, rather than a data family to
facilitate code reuse