Adding generic to client, and completing functions