make Client independent