reflect on all fields of String and Array, use Macro to hide python specific field access/call, move all of string and array implementation to impl classes