more independence from JSON library