handle field types by map