client should set his own url