properly handle JSON