This pr adds a number of new fuctions to zaza.model. As discussed zaza.model needs to be broken up as it has become too large. I would like to continue the discussion around that and submit a subsequent patch for that at a later date.