finished implementing client end methods