add internal json support