New caching strategy appears to work.  Refactor into something cleaner then testing.