Updated client to be less implementation specific