client code initial version