client implementation added - still need to add socket input/output