added base client code