always output AttrDicts
output AttrDicts
add support for custom decoders
move encoders out to new file and add decoder support
if present, attach metadata to deserialized model