add a Client struct, move Enqueue to it