create cache dir if it doesn't exist

I didn't think it was a big enough nitpick to block on. Maybe I should have waited to merge? I'll fix it and submit another PR.