initial version: cached json