Fix: create 'cache' directory if it does not exist