allow different proxy implementations