Updates Client and makes it easier to test

This update allows the client to be tested better so that we can have increased code coverage without a lot of extra work. Instead of injecting the container into the client, it now just needs to have the required classes injected into it.