quite a substantial update to the appliance model

TODO: could split out shared properties between appliance_model and prior and allow appliance_model and prior to inherit