serde with configurable encoders using tags
deserialize immutable objects with final using objenesis