update to use AbstractProxyFactory