Complete Implementation of Client