reworking get_fields to use much simpler native driver calls