Unified field separators
Added an optional callback
Added paranoid check
Added permission check
Fixed extra fields