Client should be a require parameter, this will help with unit testing.