encode/decode instead of de/serialize