hopefully sanitize field creation logic a bit