first version, build client/server arch