added type polymorphism
cleaned up API to support current jsons and viceversa, added ToString for them