choose client according to capabilities