New JSONEncoder is almost completely working, just figuring out how to deal with disabling the circular reference checking