logger can be private; also might want to protect JsonUtil from instantiation