better field construction from serialized definition