new model caching: merging in current master.