indent json by default
[INCOMPATIBLE CHANGE]
rewrote interface...