move type parsing to Record level