added cacheing and usda database and functionality