performCall should not take a callback
client should return a promise
client uses promises now