I-cache -- work in progress

*  This one is very messy, but has what I think is the correct structure.
   I committed this one to keep all the old crud before I delete masses of
   code in the big clean up.