new client functionality