add proxy function