better client with promises, unit tests