add experimental web client code