items: now JSON-driven