still on the search for bugs in encode/decode
merged
added specification obj == decode(encode(obj)) breaks build