added client functionality