docs and bug fixes
preserve key order on output (helps with documentation)
Use of IO.error( obj, throwable)