client code structure