functionality to client