Start experimental cache code and reorg some model code