added exception and redesigned ProxyCreator