read, parse, and cache data into object