cached Pur data so it doesn't hit the DB three times
moved initialization logic into it's own file so caching.rb and webserver.rb use the same code