[client] make client more flexible with settings