optimize struct
add native request payment