remove dependence on destination key and client