generate and use a client ID, store it for later use