updated model factory to automatically generate parametric wrapper types for formulae; this means there's even fewer things to specify twice :3