stubbed out basic caching for problems... some architectural issues to consider... but if problems are cached, can be reused for things like individual problems