proxy generation